Хорошо, мне трудно объяснить это, дайте мне знать, если я должен сообщить вам более подробную информацию.
Мой URL выглядит так: http://domain.com/>/
Каждый <category
> может иметь одну или несколько подкатегорий.
Я хочу, чтобы на странице категории была форма с полем выбора (среди других полей), содержащим подкатегории категорий.
В настоящее время я жестко закодировал форму в одном из шаблонов, но хочу, чтобы она напрямую отражала модель.
В моем текущем жестко закодированном решении я имею в своем представлении категории:
s = Category.objects.filter(parents__exact=c.id)
, что шаблон формы проходит через и печатает поле выбора (см. Код модели ниже)
Я предполагаю, что мне нужен ModelFormSet с init , который отфильтровывает категории, но я не могу найти, как это сделать в документации.
Рассматривал Как отфильтровать выборки ForeignKey в Django ModelForm? , но я не могу заставить его работать должным образом.
Мои модели
# 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