Jus*_*cas 0 python django django-forms
我有一个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
Run Code Online (Sandbox Code Playgroud)
-forms.py
class MenuCategoryForm(ModelForm):
class Meta:
model = Menu_Category
fields = ('name')
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当我只从表单中选择一个字段来显示(fields = ('name'))时,表单不会显示任何内容,也不会出现任何错误.它完全是空白的.但是,当我添加第二个字段时fields = ('name','test_field'),表单显示两个字段就好了.表单可以显示的字段数是否最少?
提前致谢.
你被一个常见的Python陷阱所困扰.
在这一行:
fields = ('name')
Run Code Online (Sandbox Code Playgroud)
您创建的变量不是包含单个字符串"name"的单元素元组.相反,它是一个可迭代的单个字符串,所以当Django尝试迭代它以获取字段的名称时,它会认为你已经设置了'n','a','m','e'.
要创建单元素元组,您始终需要一个尾随逗号.
fields = ('name',)
Run Code Online (Sandbox Code Playgroud)
(事实上,正如Python文档所示,它不是括号,而是逗号.)逗号.)
| 归档时间: |
|
| 查看次数: |
1347 次 |
| 最近记录: |