startという日時フィールドを持つOrderというモデルがあります。そのフィールドとの間で問題なく読み書きできます。
ただし、ModelFormを作成し、Metaのfields =()の1つとしてstartを指定すると、次のようになります。
Unknown field(s) (start) specified for Order
フィールド名をコピーして貼り付けることで、タイプミスではないことを確認しました。そのフィールドを削除すると、機能します。
これが正確なModelFormです
class OrderForm(ModelForm):
class Meta:
model = Order
fields = ('details', 'start', 'quantity', 'total')
EDITはより多くの詳細を追加しました:
必要なフィールドを除くすべてのフィールドを除外するためにexclude=()を使用しようとしましたが、除外しなくてもstartがフォームに表示されません。
モデルは次のとおりです。
class Order(MyModel):
user = models.ForeignKey(User, )
invoice = models.ForeignKey(Invoice, )
unit_price = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True, )
subtotal = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null =True, )
tax = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True, )
misc = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True, )
total = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True, )
start = models.DateTimeField(auto_now_add=True, blank=True, null=True, )
end = models.DateTimeField(editable=True, blank=True, null=True, )
duration = models.PositiveSmallIntegerField(blank=True, null=True, )
quantity = models.PositiveSmallIntegerField(blank=True, null=True, )
notes = models.CharField(max_length=256, blank=True, null=True, )
details = models.CharField(max_length=64, blank=True, null=True, )
configured = models.BooleanField(default=False, )