Fat*_*dle 1 django django-models django-admin
在Django管理站点中单击"保存"(创建新实例后)后,我得到了一个
AttributeError at /admin/bankaccount/bank_account/add/
'Bank_Account' object has no attribute 'id'
Run Code Online (Sandbox Code Playgroud)
我没有在模型中创建任何ID.该教程说,ID是自动管理的.知道为什么我得到这个吗?
我的型号:
class Bank_Account(models.Model):
iban = models.CharField(max_length = 30)
bic = models.CharField(max_length = 30)
def __init__(self):
self.iban = 0
self.bic = 0
Run Code Online (Sandbox Code Playgroud)
我的admin.py
from bankaccount.models import Bank_Account
from django.contrib import admin
admin.site.register(Bank_Account)
Run Code Online (Sandbox Code Playgroud)
我假设你的代码示例中已经覆盖了模型中的__init__
(构造函数)Bank_Account
.但是你没有打电话给超级.实际上,您采取的操作应该表示为模型中的默认值:
class BankAccount(models.Model):
iban = models.CharField(max_length = 30, default="0")
bic = models.CharField(max_length = 30, default="0")
Run Code Online (Sandbox Code Playgroud)
这应该工作正常.但是我不确定你为什么要那些默认值; 我认为没有违约,null=False, blank=False
在这种情况下更合适,因为银行账户肯定会同时拥有IBAN和BIC.不过,也许我在那里误解了你的域名问题.
关键是:如果不确保在超类中完成构造函数的所有工作,请不要覆盖构造函数.
归档时间: |
|
查看次数: |
2310 次 |
最近记录: |