我想创建新模型,例如:
user_name = models.ForeignKey(u"Username", User),
Run Code Online (Sandbox Code Playgroud)
但是当我尝试syncdb时,我收到以下错误消息:
"AttributeError:'unicode'对象没有属性'_meta'"
当我查看一些教程时,一切似乎与我的模型中的相同,并且从未提及"_meta"的问题.
假设我的模型中的字段f定义如下,作为外键:
f = models.ForeignKey(AnotherModel)
Run Code Online (Sandbox Code Playgroud)
当Django同步数据库时,将调用db中创建f_id的字段,自动以"_id"为后缀.
问题是我希望db中的这个字段与我在模型f中定义的完全相同,在本例中.我怎样才能做到这一点?
我的models.py文件中有以下内容:
class Film(models.Model):
title = models.CharField(max_length=200)
director = models.CharField(max_length=200)
description = models.CharField(max_length=200)
pub_date = models.DateField('date published')
class Comment(models.Model):
film = models.ForeignKey(Film, on_delete=models.CASCADE)
body = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
当我登录到 Django admin 时,我添加了一些电影,然后添加了一些评论,选择评论与哪个电影对象相关。然后我也通过管理面板创建了几个用户。
我希望我的关系是:
电影可以有很多评论/评论属于电影
用户可以有很多评论/评论属于用户
我认为,就像评论和电影一样,我只需user要将comment. 我正在努力做到这一点。我正在学习Django 教程,但看不到介绍如何将其他表链接到用户的教程。
我以为我可以做这样的事情:
user = models.ForeignKey(User, on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
像这样导入用户时:
from django.contrib.auth.models import User
Run Code Online (Sandbox Code Playgroud)
目前的结果是如果我保持user = models.ForeignKey(User, on_delete=models.CASCADE)我得到 err_connection_refused