2013-06-14 3 views
1

У меня есть форму и хочу, чтобы поле пользователя не отображалось.Запретить отображение поля формы

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',) 

Я попытался исключить, но по-прежнему появляется поле. как это сделать ??

Заранее спасибо.

ответ

1

Не уверен, что он должен работать на самом деле: Просто сделать некоторые минутные проверки:

1.exclude должны быть частью класса Meta

2.make, которые исключают из кортежа в список (не уверен, если это помогает)

3.or вместо исключения попытаться дать поля = (#Some имен полей,)

Надеется, что это работает ..

0

Используйте это просмотров:

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

или вы можете обрабатывать его в HTML в скрытом от ввода тега:

<input type='hidden'> 
0

Вы можете настроить вид модели таким образом.

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

Я получаю сообщение об ошибке, которое не определяется при запуске syncdb. Что делать. Помощь людям. – George

+0

Не могли бы вы предоставить журнал ошибок и, пожалуйста, убедитесь, что вы импортируете ModelForm из форм django. –

Смежные вопросы