首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(fields.E300)字段定义了一个与模型的关系,该模型要么没有安装,要么是抽象的

(fields.E300)字段定义了一个与模型的关系,该模型要么没有安装,要么是抽象的
EN

Stack Overflow用户
提问于 2015-02-20 10:23:32
回答 8查看 43.7K关注 0票数 38

我在Django项目"aplikacja“中安装了两个应用程序

第一个名字是:“哥斯拉”

代码语言:javascript
复制
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“

代码语言:javascript
复制
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)

我收到了这样的错误:

代码语言:javascript
复制
userprofile.UserProfile.czas: (fields.E300) Field defines a relation with model 'Godzina', which is either not installed, or is abstract.

什么意思?我希望用户只能选择管理员输入应用程序“哥斯拉”的时间,例如,我定义了晚上19点,下午20点,然后用户可以在UserProfile应用程序中选择这些值

有可能解决这个问题吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-02-20 10:25:56

您应该将应用程序名称添加到FK定义中的相关模型名称中:

代码语言:javascript
复制
czas = models.ForeignKey('firstapp.Godzina') 
票数 60
EN

Stack Overflow用户

发布于 2019-11-08 12:29:20

当使用从一个应用到另一个应用程序的模型时,一个通用信息是

代码语言:javascript
复制
model_variable = models.ForeignKey('the_appname.the_model_class_name')

在这种情况下,对于Django-项目“aplikacja”,第二个应用程序(UserProfile)应该是:

代码语言:javascript
复制
czas = models.ForeignKey(‘Godzina.Godzina') 

在此之后,我建议您删除迁移文件夹中的所有文件(在您创建的应用程序下: Godzina和UserProfile),但init文件除外。还删除SQLite文件。然后运行和Python manage.py manage.py迁移。这些步骤很可能会解决问题。

票数 5
EN

Stack Overflow用户

发布于 2021-03-21 17:45:12

我也犯了同样的错误,这是由于类名相似造成的一个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28626648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档