わかりました、これを説明するのに苦労しています。詳細を記入する必要があるかどうか教えてください。
私の URL は次のようになります: http://domain.com/<category
>/
各<category
> には 1 つまたは複数のサブカテゴリがあります。
カテゴリ ページに、カテゴリのサブカテゴリを含む選択ボックス (他のフィールドの中でも) を備えたフォームが必要です。現在、テンプレートの 1 つでフォームをハードコーディングしていますが、モデルを直接反映させたいと考えています。
現在ハードコードされているソリューションでは、カテゴリ ビューに次のように表示されます。
s = Category.objects.filter(parents__exact=c.id)
フォーム テンプレートが繰り返し実行され、選択ボックスが出力されます (以下のモデル コードを参照)。
カテゴリを除外するinitを備えたModelFormSetが必要だと思いますが、ドキュメントでそれを行う方法が見つからないようです。
Django ModelFormでForeignKeyの選択をフィルタリングするにはどうすればよいですか? 同様に、しかし、私はそれを適切に動作させることができません。
私のモデル
# The model that the Form should implement
class Incoming(models.Model):
cat_id = models.ForeignKey(Category)
zipcode = models.PositiveIntegerField()
name = models.CharField(max_length=200)
email = models.EmailField()
telephone = models.CharField(max_length=18)
submit_date = models.DateTimeField(auto_now_add=True)
approved = models.BooleanField(default=False)
# The categories, each category can have none or many parent categories
class Category(models.Model):
name = models.CharField(max_length=200, db_index=True)
slug = models.SlugField()
parents = models.ManyToManyField('self',symmetrical=False, blank=True, null=True)
def __unicode__(self):
return self.name
私のフォーム
class IncomingForm(ModelForm):
class Meta:
model = Incoming