はモデルを持っている:フォームクリーンなデータ目的球にobject.id要求するために、どのように
私はvariation_1
かどうかをチェックしますきれいな関数を作成する必要がforms.py
class OrderForm(forms.ModelForm):
variations_select = forms.ChoiceField(choices=VARIATIONS)
class Meta:
model = Order
fields = [
'variations_select'
]
で
class Product(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=50)
variation_1 = models.BooleanField(default=True)
variation_2 = models.BooleanField(default=True)
variation_3 = models.BooleanField(default=True)
class Order(models.Model):
buyer = models.ForeignKey(User, related_name='buyer')
product = models.ForeignKey(Product)
variations_select = models.CharField(max_length=50, choices=VARIATIONS)
Product
ではvariation_2
またはvariation_3
が利用可能です。これのために必要なリクエストProduct.id
〜def clean_variations_select(self):
これを行うには?
def clean_variations_select(self):
product = Product.object.get(id = product.id)
variations_select = self.cleaned_data.get("variations_select")
if variations_select == "Variation_1" and product.variation_1 == False:
raise forms.ValidationError("variation_1 was sold already")
else:
return variations_select
product = Product.object.get(id = product.id)
は - 原因の注文がまだデータベースに作成されていない動作しません(ただし、新しい秩序の創造にビュー・リンクをレンダリングする際に私が持っている../product.id/new_order)。
あなたはあなたの「urls.py」を投稿できますか? –
'Order'クラスの' product'モデルフィールドは、 'Product'クラスとは外部キー関係を持ちませんが、' WowRaid'に代わっていますか?それがあなたのデザインのためにどうなったのですか? –