Я пытаюсь создать свой первый проект, веб-сайт CRM для обработки заказов и инвентаря. и я застрял, я смог связать заказы с клиентом. но когда я пытаюсь построить порядок, который содержит несколько элементов. по какой-то причине я не нашел способ сделать это. Надеюсь, вы можете помочь мне.
, поэтому у меня есть Пользователь >> Заказ >> Multi Items вопросы:
1) лучшая практика здесь просто использовать ForeignKey? код моей модели:
from django.db import models
class Customer(models.Model):
name = models.CharField(max_length=200, null=True)
phone = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200, null=True)
date_created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
def date_createdview(self):
return self.date_created.strftime('%B %d %Y')
class Product(models.Model):
CATEGORY = (
('General', 'General'),
('SmartHome', 'SmartHome'),
('Software', 'Software'),
('Mobile', 'Mobile'),
)
name = models.CharField(verbose_name='שם', max_length=200, null=True)
price = models.FloatField(verbose_name='מחיר', null=True)
category = models.CharField(max_length=200, null=True, choices=CATEGORY, verbose_name='קטגוריה')
description = models.CharField(max_length=200, null=True, verbose_name='מלל חופשי')
date_created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
class Order(models.Model):
STATUS = (
('New', 'New'),
('Work in progress', 'Work in progress'),
('completed', 'completed'),
)
customer = models.ForeignKey(Customer, null=True, on_delete=models.CASCADE)
date_created = models.DateTimeField(auto_now_add=True, null=True)
status = models.CharField(max_length=200, null=True, choices=STATUS)
def date_createdview(self):
return self.date_created.strftime('%d/%m/%Y')
class OrderItem(models.Model):
product = models.ForeignKey(Product, null=True, on_delete=models.CASCADE)
order = models.ForeignKey(Order, null=True, on_delete=models.CASCADE)
quantity = models.IntegerField(null=True)
2) как мне строить свои виды или формы? я хочу сделать это динамически c, когда я ввожу заказ, я могу вставить элементы и увидеть, как новый элемент добавляется в список элементов в заказе. Как сохранить номер заказа и добавить новые элементы?
это мой вид продукта, он работает. Я могу добавлять новые продукты.
@login_required(login_url="login")
def products(request):
form = ProductForm(request.POST or None)
if form.is_valid():
form.save()
products = Product.objects.all()
context = {'form': form, 'products': products}
return render(request, 'accounts/products.html', context)
надеюсь, вы можете направить меня в нужное место. спасибо!