【问题标题】:Grouping ForeignKey Related Form Fields分组外键相关的表单字段
【发布时间】:2012-11-29 19:46:04
【问题描述】:

我有这两个模型

class Event(models.Model):
event_name=models.CharField("Event Name",max_length=255)
category = models.ManyToManyField(SubCategory)
def __unicode__(self):
    return self.event_name

class Category(models.Model):
   category_name= models.CharField(max_length=255)
   def __unicode__(self):
       return self.category_name


class SubCategory(models.Model):
    parent_category=models.ForeignKey(Category)
    category_name=models.CharField(max_length=255)
    def __unicode__(self):
        return self.category_name

在我的 form.py 中

class EventForm(forms.ModelForm):
class Meta:
    model=Event

def __init__(self, *args, **kwargs):

    super(EventForm, self).__init__(*args, **kwargs)

    self.fields["category"].widget = CheckboxSelectMultiple()

    self.fields["category"].queryset = SubCategory.objects.all()

我创建了我的模型EventForm 的一个表单,并且子类别显示为复选框,就像我想要的那样。唯一的问题是,我想根据各自的父类别列出子类别复选框,但不知道该怎么做。任何人都可以帮助我如何做到这一点

【问题讨论】:

    标签: django django-forms field


    【解决方案1】:

    我建议在class SubCategory 中使用ManyToMany 字段而不是ForeignKey。

    【讨论】:

    • 问题是每个 Category 有很多 SubCategories 但子类别只能有一个父 Category 。我想要的是一个表单,它将一组subcategories 显示为它们的各个父级categories 下的复选框。相反,表单只是列出了从第一个添加到最后一个添加的所有子类别。
    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2012-09-20
    • 2022-01-24
    相关资源
    最近更新 更多