防止表单字段显示

时间:2013-06-14 10:42:59

标签: python html django aptana

我有一个表单,并希望不显示 user 字段。

models.py

class Questions(models.Model):
    user=models.ForeignKey(User)
    category=models.ForeignKey(Categories)
    question=models.TextField(max_length=500)
    created_date=models.DateTimeField('date created')
    def __unicode__(self):
        return "%s%s" %(self.question,self.created_date)

form.py

class QuestionsForm(ModelForm):
        class Meta:
            model = Questions
        widgets = {
            'question': TextInput(attrs={'placeholder': 'Add question here'})
        }
         exclude=('user',)

我尝试排除,但该字段仍然显示。 怎么做??

提前致谢。

3 个答案:

答案 0 :(得分:1)

不确定它是否应该有效: 只需做一些分钟检查:

1.exclude应该是Meta类的一部分

2.将从元组排除到列表,(不确定是否有帮助)

3.或者不是排除尝试给出fields =(#some fields names,)

希望这有效..

答案 1 :(得分:0)

在视图中使用此功能:

form.fields['name_of_field'].widget = forms.HiddenInput()

或者您可以通过输入隐藏标记在HTML中处理它:

<input type='hidden'>

答案 2 :(得分:0)

您可以通过这种方式自定义模型表单。

QuestionsForm(ModelForm):
        user = forms.ModelChoiceField(queryset=User.objects.all(),
                                         widget=forms.HiddenInput())
        class Meta:
            model = Questions