Django与“合作”;字典;桌子
我对django的形式和布局有一些误解。 我有一个字典样式的表,如下所示:Django与“合作”;字典;桌子,django,django-forms,Django,Django Forms,我对django的形式和布局有一些误解。 我有一个字典样式的表,如下所示: class Ministry(models.Model): category = models.CharField(max_length='128', null=True) sub_category = models.CharField(max_length='128', null=True) tip = models.TextField() <select id="id_category
class Ministry(models.Model):
category = models.CharField(max_length='128', null=True)
sub_category = models.CharField(max_length='128', null=True)
tip = models.TextField()
<select id="id_category" name="category">
<option value="" selected="selected">---------</option>
<option value="9">IMAGES Photography</option>
<option value="11">IMAGES Digital Art</option>
<option value="12">IMAGES Typography and Layouts</option>
..........
由于这个表,我在类别和子类别之间有一个直接的字典式依赖关系。我想在表单上使用它,就像一个下拉列表。
但我不明白,我怎么能在表单上分别取两个字段?
我使用这种变体:
def __unicode__(self):
return self.category + " " + self.sub_category
在表格上,我只有一个下拉列表,如下所示:
class Ministry(models.Model):
category = models.CharField(max_length='128', null=True)
sub_category = models.CharField(max_length='128', null=True)
tip = models.TextField()
<select id="id_category" name="category">
<option value="" selected="selected">---------</option>
<option value="9">IMAGES Photography</option>
<option value="11">IMAGES Digital Art</option>
<option value="12">IMAGES Typography and Layouts</option>
..........
---------
影像摄影
图像数字艺术
图像排版和布局
..........
我不理解,为了自动完成这两个下拉列表,我需要使用jQuery或其他什么。但我不敢相信,django没有一个简单的方法来分隔这两列。
最后,我需要选择类别(例如图像),然后选择子类别(例如数字艺术),然后通过表单上的“id_category”字段传递值“11”。
还有一件事:当我有最后一篇文章,并且我试图在模板上只显示类别时,我仍然有“图像数字艺术”,但我只需要“图像”。我知道,那是因为我试图返回category+sub_category
你能给我一个建议,我如何能分别处理这两个专栏
编辑:
为了明确我的需求,我只希望表单上有一个具有直接依赖关系的表和两个下拉列表。不要在CharField中指定
null=True
,通常max_length
的值为int
,因此,指定max_length=128
。这是一个很好的解决方案,但通过这种方式,我将有两个表和一个下拉列表,但我希望有一个表在类别和子类别之间具有直接依赖关系,并且在表单上有两个下拉列表
class Category(models.Model):
name = models.CharField(max_length=128, blank=True)
def __unicode__(self):
return self.name
class Ministry(models.Model):
category = models.ForeignKey(Category)
sub_category = models.CharField(max_length=128, blank=True)
tip = models.TextField()
def __unicode__(self):
return "%s %s" % (self.category.name, self.sub_category)