0

私はforms.py内にフォームを作成しています:

from django.forms import ModelForm
from ver11.models import studentdetails
class studentform(ModelForm):
     class Meta:
          model=studentdetails
          fields='__all__'

しかし、次のエラーが表示されます。

Unknown field(s) (a, l, _) specified for studentdetails

これを案内してください

4

2 に答える 2

2

Django 1.5 またはそれ以前のバージョンを使用していると思います。__all__Django 1.6+ にのみ存在します:

バージョン 1.6 より前では、' all ' ショートカットは存在しませんでしたが、fields 属性を省略しても同じ効果がありました。フィールドと除外の両方を省略することは非推奨になりましたが、バージョン 1.8 までは以前と同様に機能し続けます。

コードを次のように変更します。

from django.forms import ModelForm
from ver11.models import studentdetails

class studentform(ModelForm):
     class Meta:
          model = studentdetails
          # omit the fields totally

また、命名規則とスタイルについてはPEP8をお読みください。

于 2013-08-01T10:03:42.393 に答える
1

Django 1.5 以前では、フィールドはリストやタプルのように反復可能である必要があり、反復可能でもある文字列を指定していますが、次のように解釈されます。('a', 'l', '_')

で試してください

fields = ['__all__']

ただし、省略してもかまいません。すべてデフォルトです。

fields = ('__all__')また、これは実際のタプルではないため、このエラーが引き続き発生することに注意してくださいfields = ('__all__',)。タプルを意味していることを python に納得させる必要があります。

于 2014-02-12T10:59:33.387 に答える