我已经用各个领域定义了我的模型。
其中一些是自定义字段,我使用应用程序的 fields.py 文件来验证信用卡数据。来源是here https://github.com/bryanchow/django-creditcard-fields.
class Transaction(models.Model):
card_name = models.CharField()
card_number = CreditCardField(required=True)
security_code = VerificationValueField(required=True)
expiry_date = ExpiryDateField(required=True)
我在 forms.py 文件中定义了一个 ModelForm。
class TransactionForm(forms.ModelForm):
class Meta:
model = Transaction
fields = "__all__"
我已将表单添加到我的 admin.py 文件中。
class TransactionAdmin(admin.ModelAdmin):
form = TransactionForm
def get_fieldsets(self, *args, **kwargs):
return (
(None, {
'fields': ('card_name', 'card_number'),
}),
)
admin.site.register(Transaction, TransactionAdmin)
但是,自定义字段似乎没有显示在管理面板中。经过大量研究后,我发现this https://www.silviogutierrez.com/blog/django-dynamic-admin-forms/,这似乎是解决方案,但它不起作用。我已经尝试了各种方法,包括添加一个带有缺失字段的字段元组以使其正常工作,但没有成功。是的,我已经做了很多搜索。
按照最后一个链接中的解决方案时出现的错误是这样的:
Unknown field(s) (card_number) specified for Transaction. Check fields/fieldsets/exclude attributes of class TransactionAdmin.
运行 Django 1.7.4、Python 3。