Ann*_*a K 19 django django-models python-2.7
我的Django项目中安装了2个应用程序"aplikacja"
第一个名为:"Godzina"
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')
Run Code Online (Sandbox Code Playgroud)
第二个命名为:"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)
Run Code Online (Sandbox Code Playgroud)
我收到这样的错误:
userprofile.UserProfile.czas: (fields.E300) Field defines a relation with model 'Godzina', which is either not installed, or is abstract.
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我希望用户只能选择管理员放入应用程序"Godzina"的时间.例如,我定义时间为晚上19点,晚上20点,然后用户可以在UserProfile应用程序中选择这些值
有可能解决这个问题吗?
cat*_*ran 30
您应该将应用程序名称添加到FK定义中的相关型号名称:
czas = models.ForeignKey('firstapp.Godzina')
Run Code Online (Sandbox Code Playgroud)
小智 5
从一个应用程序到另一个应用程序使用模型时的通用信息是
\n\nmodel_variable = models.ForeignKey('the_appname.the_model_class_name')\n
Run Code Online (Sandbox Code Playgroud)\n\n在这种情况下,对于 Django 项目 \xe2\x80\x9caplikacja\xe2\x80\x9d,对于第二个应用程序(UserProfile),它应该是:
\n\nczas = models.ForeignKey(\xe2\x80\x98Godzina.Godzina') \n
Run Code Online (Sandbox Code Playgroud)\n\n之后,我建议您删除迁移文件夹中的所有文件(在您创建的应用程序下:Godzina 和 UserProfile),除了 init 文件。同时删除 SQLite 文件。然后运行\nPython manage.py makemigrations\n和\npython manage.py migrate。\n这些步骤很可能可以解决问题。
\n 归档时间: |
|
查看次数: |
18909 次 |
最近记录: |