首先,我已经阅读了很多内容,但我找不到答案。
我有一个django项目,在该项目中我有一些应用程序,更具体地说是
DJANGO-PROJECT
*--------- app_base
*--------- app_equipment
*--------- app_customer
then app_base is the app for code that is common to the other apps, in my case i have a models.py file a class who has a class:
from django.db import models
from datetime import date
import project_name.utilies as ut
class BaseModel():
status = models.CharField( max_length = 1, choices = ut.STATUS_CHOICES, default = 1 )
created_date = models.DateField( default = date.today )
last_modified_date = models.DateField( null = True )
deleted_date = models.DateField( null = True )
createdby_id = models.IntegerField( default = 0 )
modifiedby_id = models.IntegerField( default = 0 )
class Meta:
abstract=True
然后在app_equipment中我有另一个models.py文件,在该文件中我有下一个类:
from django.db import models
from app_base.models import BaseModel
class Equipment(BaseModel):
name = models.CharField( max_length = 250 , default="")
image = models.CharField( max_length = 250 , default="" )
desc = models.TextField( default="")
horsepower = models.IntegerField( default = 0 )
fuelcapacity = models.IntegerField( default = 0 )
model = models.CharField( max_length = 250 , default="" )
year = models.IntegerField( default = 0 , )
purchasecost = models.IntegerField( default = 0 )
class Meta:
db_table = "equipment"
所以设备从BaseModel扩展或者我在django文档中读到的错误是当我想执行commmand makemigrations时我得到一个错误:
您正在尝试添加一个不可为空的字段' id'到没有默认的设备;我们不能这样做(数据库需要一些东西来填充现有的行)。 请选择一个修复: 1)现在提供一次性默认值(将在所有现有行上设置) 2)退出,让我在models.py
中添加默认值并且我不知道如何解决它,我一直在尝试使用id字段,没有任何反应,有些人说错误是要清除,但差异文件和应用程序的哪一部分是清楚的?
当我不继承抽象模型时,错误得到解决,但我想在其他模型的每个表中使用BaseModel中的所有属性
先谢谢你们