Mam projekt django ecommerce, który działa poprawnie, dopóki nie postanowiłem go poprawić. Pozwalam użytkownikom składać zamówienia na określone usługi, ale za każdym razem, gdy składają zamówienie, muszą zawsze wprowadzać swoje dane (imię, nazwisko, imię i nazwisko, adres itp.), Więc postanowiłem uaktualnić aplikację, aby użytkownik mógł dodać swój adres rozliczeniowy i można się do niego odwołać w kolejności lub kontynuować jako gość.Rozszerzenie modelu użytkownika Django w aplikacji e-commerce
model
class Order(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
address = models.CharField(max_length=250)
postal_code = models.CharField(max_length=20)
city = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
paid = models.BooleanField(default=False)
class OrderItem(models.Model):
order = models.ForeignKey(Order, related_name='items')
product = models.ForeignKey(Product,related_name='order_items')
price = models.DecimalField(max_digits=10, decimal_places=2)
quantity = models.PositiveIntegerField(default=1)
widok
def order_create(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save()
for item in cart:
OrderItem.objects.create(order=order, product=item['product'],price=item['price'], quantity=item['quantity'])
cart.clear()
return render(request,'order/created.html', {'order': order})
else:
form = OrderCreateForm()
return render(request, 'order/create.html',{'cart': cart, 'form': form})
Potem stworzył aplikację konta i rozszerzony użytkownika django tak, że użytkownik może zarejestrować adres i telefon komórkowy, dzięki czemu użytkownik nie musi wpisz go za każdym razem, gdy chce złożyć zamówienie.
mój nowy modelu jest
class Order(models.Model):
account = models.ForeignKey(Account, related_name='user_account')
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
paid = models.BooleanField(default=False)
coupon = models.ForeignKey(Coupon, related_name='orders',null=True,blank=True)
discount = models.IntegerField(default=0,validators=[MinValueValidator(0), MaxValueValidator(100)])
Jestem zdezorientowany, jak kodować moim zdaniem. wszelka pomoc pomogłaby i mam również
def admin_order_detail(request, order_id):
order = get_object_or_404(Order, id=order_id)
#account = Account.objects.filter(request.user)
context = {
'order': order,
}
template = 'order/detail.html'
return render(request,template,context)
aby móc zobaczyć szczegóły zamówienia w zakresie administracyjnym, ale jestem tylko w stanie przedłużyć imię i nazwisko, e-mail i numer telefonu. Każda pomoc będzie doceniona. Dzięki z góry
Kopia wszystkich kodów z github https://github.com/Olar19/ecommerce
Prawdopodobny duplikat [Rozszerzanie modelu użytkownika o niestandardowe pola w Django] (https://stackoverflow.com/questions/44109/extending-the-user-model-with-custom-fields-in-django) – itzMEonTV
To NIE jest duplikatem. – King