Я хочу создать встроенный набор форм между Предзаказ модель и Продукт модель.Сценарий заключается в том, что пользователь сможет выбрать один или несколько продуктов, когда он решит создать предварительный заказ.С другой стороны, продукт может быть найден в одном или нескольких предварительных заказах.Имея это в виду, я создал множество отношений.
models.py
class Preorder(models.Model):
client = models.ForeignKey(Client,verbose_name=u'Client')
invoice_date = models.DateField("Invoice date",null=True, blank=True, default=datetime.date.today)
preorder_has_products = models.ManyToManyField(Product, blank=True)
def get_absolute_url(self):
return reverse('preorder_edit', kwargs={'pk': self.pk})
class Product(models.Model):
name = models.CharField("Name",max_length=200)
price = models.DecimalField("Price", max_digits=7, decimal_places=2, default=0)
barcode = models.CharField(max_length=16, blank=True, default="")
eopyy = models.CharField("Code eoppy",max_length=10, blank=True, default="")
fpa = models.ForeignKey(FPA, null=True, blank=True, verbose_name=u'Fpa Scale')
forms.py
class PreorderForm(ModelForm):
class Meta:
model = Preorder
exclude = ('client','preorder_has_products',)
def __init__(self, *args, **kwargs):
super(PreorderForm, self).__init__(*args,**kwargs)
self.fields['invoice_date'].widget = MyDateInput(attrs={'class':'date'})
class ProductForm(ModelForm):
#name = ModelChoiceField(required=True,queryset=Product.objects.all(),widget=autocomplete.ModelSelect2(url='name-autocomplete'))
class Meta:
model=Product
fields = '__all__'
def __init__(self, *args, **kwargs):
super(ProductForm, self).__init__(*args, **kwargs)
self.fields['name'].label="Name"
self.fields['price'].label="Price"
и, наконец, встроенный набор форм:
PreorderProductFormSet = inlineformset_factory(Preorder, Product,
form=ProductForm, extra=1)
После запуска я сталкиваюсь с проблемой: ValueError в / 'intranet.Product' не имеет ForeignKey для 'intranet.Preorder'
Почему это происходит с тех пор, как я создал множествоотношение?
Одним из решений является создание отношения внешнего ключа между предзаказом и моделью продукта внутри модели продукта. Но я не хочу этого делать, поскольку модель продукта используется в других областях моего проекта и не хочетиспортить.
Есть предложения?