Revert "broken models relationship in admin. please look at the erd.png"
This reverts commit c6b1bb975b
.
This commit is contained in:
parent
c6b1bb975b
commit
08a1a99ac4
|
@ -3,7 +3,7 @@ from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
|||
from django.contrib.auth.models import User
|
||||
|
||||
# Register your models here.
|
||||
from webshop.models import (Article, Order, CartOfGoods,
|
||||
from webshop.models import (Article, Order, OrderPosition,
|
||||
Person, City, Picture, OrderOfGoods,
|
||||
Category, Option)
|
||||
|
||||
|
@ -57,10 +57,10 @@ class ArticleAdmin(admin.ModelAdmin):
|
|||
inlines = (PictureInline,)
|
||||
|
||||
|
||||
class CartOfGoodsInline(admin.StackedInline):
|
||||
model = CartOfGoods
|
||||
class OrderPositionInline(admin.StackedInline):
|
||||
model = OrderPosition
|
||||
can_delete = False
|
||||
verbose_name_plural = 'Cart Items'
|
||||
verbose_name_plural = 'Order Positions'
|
||||
|
||||
|
||||
class OrderAdmin(admin.ModelAdmin):
|
||||
|
@ -68,7 +68,7 @@ class OrderAdmin(admin.ModelAdmin):
|
|||
list_filter = ('date',)
|
||||
date_hierarchy = 'date'
|
||||
ordering = ('-date',)
|
||||
inlines = (CartOfGoodsInline,)
|
||||
inlines = (OrderPositionInline,)
|
||||
|
||||
|
||||
class OrderOfGoodsAdmin(admin.ModelAdmin):
|
||||
|
|
|
@ -3,7 +3,7 @@ from django.core.validators import MinValueValidator
|
|||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils import timezone
|
||||
from currencies.models import ExchangeRate
|
||||
|
||||
|
||||
class Option(models.Model):
|
||||
name = models.CharField(max_length=200, unique=True)
|
||||
|
@ -56,23 +56,12 @@ class OrderStatus(models.Model):
|
|||
return self.name
|
||||
|
||||
|
||||
class Order(models.Model):
|
||||
""" purchase """
|
||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
article = models.ManyToManyField(Article, through='OrderPosition')
|
||||
status = models.ForeignKey(OrderStatus)
|
||||
date = models.DateTimeField(default=timezone.now)
|
||||
|
||||
|
||||
class OrderOfGoods(models.Model):
|
||||
""" articles of purchase """
|
||||
article = models.ForeignKey(Article)
|
||||
amount = models.FloatField(max_length=3)
|
||||
amount = models.FloatField(max_length=5)
|
||||
delivery_date = models.DateField()
|
||||
order = models.ForeignKey(Order)
|
||||
order_date = models.DateTimeField(auto_now_add=True)
|
||||
order_status = models.ForeignKey(OrderStatus)
|
||||
exchange_rate = models.ForeignKey(ExchangeRate)
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = "Order of Goods"
|
||||
|
@ -87,22 +76,32 @@ class Picture(models.Model):
|
|||
return self.name
|
||||
|
||||
|
||||
class Order(models.Model):
|
||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
article = models.ManyToManyField(Article, through='OrderPosition')
|
||||
status = models.ForeignKey(OrderStatus)
|
||||
date = models.DateTimeField(default=timezone.now)
|
||||
|
||||
|
||||
class OrderPosition(models.Model):
|
||||
article = models.ForeignKey(Article, on_delete=models.CASCADE)
|
||||
order = models.ForeignKey(Order, on_delete=models.CASCADE)
|
||||
amount = models.FloatField(max_length=5)
|
||||
price_in_chf = models.DecimalField(max_digits=19,
|
||||
decimal_places=2,
|
||||
validators=[MinValueValidator(
|
||||
Decimal('0.00'))])
|
||||
|
||||
|
||||
class ShoppingCart(models.Model):
|
||||
""" cart of user """
|
||||
name = models.CharField(max_length=200)
|
||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
article = models.ManyToManyField(Article)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class CartOfGoods(models.Model):
|
||||
""" cart items """
|
||||
article = models.ForeignKey(Article, on_delete=models.CASCADE)
|
||||
amount = models.FloatField(max_length=5)
|
||||
cart = models.ForeignKey(ShoppingCart)
|
||||
|
||||
|
||||
class City(models.Model):
|
||||
name = models.CharField(max_length=200)
|
||||
zip_code = models.PositiveSmallIntegerField()
|
||||
|
|
|
@ -4,7 +4,7 @@ from django.contrib.auth.decorators import login_required
|
|||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.forms import UserCreationForm
|
||||
from webshop.models import (Article, Category, ArticleStatus, Person,
|
||||
City, Picture, CartOfGoods)
|
||||
City, Picture)
|
||||
from webshop.forms import RegistrationForm, AddToCartForm
|
||||
|
||||
from currencies.models import ExchangeRate, ExchangeRate_name
|
||||
|
@ -144,12 +144,7 @@ def article_details(request, article_id):
|
|||
if amount.is_valid():
|
||||
print("is valid")
|
||||
amount = amount.cleaned_data['amount']
|
||||
cart = CartOfGoods.objects.create(
|
||||
article=article_id,
|
||||
amount=amount,
|
||||
cart="",
|
||||
)
|
||||
cart.save()
|
||||
print("amount:", amount, "article_id:", article_id)
|
||||
amount = AddToCartForm()
|
||||
else:
|
||||
amount = AddToCartForm()
|
||||
|
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 95 KiB |
Loading…
Reference in New Issue