我在Django项目"aplikacja“中安装了两个应用程序
第一个名字是:“哥斯拉”
from django.db import models
class Godzina (models.Model):
GODZINA = (
('19', '19'),
('20', '20'),
('21', '21'),
)
godzina = models.CharField(max_length=6, choices=GODZINA, verbose_name='jezyk')第二个名字是:"UserProfile“
from django.db import models
from django.contrib.auth.models import User
from godzina.models import Godzina
class UserProfile(models.Model):
czas = models.ForeignKey('Godzina')
user = models.OneToOneField(User)我收到了这样的错误:
userprofile.UserProfile.czas: (fields.E300) Field defines a relation with model 'Godzina', which is either not installed, or is abstract.什么意思?我希望用户只能选择管理员输入应用程序“哥斯拉”的时间,例如,我定义了晚上19点,下午20点,然后用户可以在UserProfile应用程序中选择这些值
有可能解决这个问题吗?
发布于 2015-02-20 10:25:56
您应该将应用程序名称添加到FK定义中的相关模型名称中:
czas = models.ForeignKey('firstapp.Godzina') 发布于 2019-11-08 12:29:20
当使用从一个应用到另一个应用程序的模型时,一个通用信息是
model_variable = models.ForeignKey('the_appname.the_model_class_name')在这种情况下,对于Django-项目“aplikacja”,第二个应用程序(UserProfile)应该是:
czas = models.ForeignKey(‘Godzina.Godzina') 在此之后,我建议您删除迁移文件夹中的所有文件(在您创建的应用程序下: Godzina和UserProfile),但init文件除外。还删除SQLite文件。然后运行和Python manage.py manage.py迁移。这些步骤很可能会解决问题。
发布于 2021-03-21 17:45:12
我也犯了同样的错误,这是由于类名相似造成的一个问题。
https://stackoverflow.com/questions/28626648
复制相似问题