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)

フォーム.py

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

除外しようとしましたが、フィールドはまだ表示されます。どうやってするの??

前もって感謝します。

4

3 に答える 3

1

実際に機能するかどうかはわかりません: いくつかの細かいチェックを行うだけです:

1.exclude はクラス Meta の一部である必要があります

2.タプルからリストを除外するようにします(役立つかどうかはわかりません)

3. または、除外する代わりに、 fields = (#some fields names, ) を指定してみてください

これがうまくいくことを願っています..

于 2013-06-14T14:28:18.873 に答える
0

ビューでこれを使用します。

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

または、隠しタグを入力して HTML で処理することもできます。

<input type='hidden'>
于 2013-06-14T11:05:32.077 に答える
0

このような方法でモデル フォームをカスタマイズできます。

QuestionsForm(ModelForm):
        user = forms.ModelChoiceField(queryset=User.objects.all(),
                                         widget=forms.HiddenInput())
        class Meta:
            model = Questions
于 2013-06-14T11:14:05.373 に答える