2010-07-14 36 views
0

我有一个看起来像这样的Django的模型和模型的形式:Django的形式不显示的时候只有一个字段被用来

-models.py

class Menu_Category(models.Model): 
    merchant = models.ForeignKey(Merchant, related_name='menu_categories') 
    name = models.CharField(max_length=64) 
    test_field = models.CharField(max_length=20) 

    def __unicode__(self): 
    return self.name 

-forms.py

class MenuCategoryForm(ModelForm): 
    class Meta: 
     model = Menu_Category 
     fields = ('name') 

我遇到的问题是,当我只从表单中选择一个字段来显示(fields = ('name'))时,表单不显示任何内容,也不会显示任何错误。这是完全空白的。但是,当我添加第二个字段fields = ('name','test_field')时,表单显示这两个字段都很好。表单可以显示的最少字段数是多少?

在此先感谢。

回答

7

你被一个普通的Python陷入了困境。

在这一行:

fields = ('name') 

已创建的变量是含有单字符串“名”的单元素的元组。相反,它是一个可迭代的单个字符串,所以当Django尝试迭代它以获取字段的名称时,它会认为您已设置'n','a','m','e'

要创建一个单元组元组,您总是需要一个尾随逗号。

fields = ('name',) 

(事实上,作为Python文档显示,它不是使元组在所有的括号,而是逗号。)

+0

这做到了。好的信息要知道。这就是我每30秒从python切换到javascript所获得的结果(javascript对象末尾的逗号会产生错误)。谢谢。 – 2010-07-14 21:56:25

相关问题