【发布时间】:2018-07-04 03:49:46
【问题描述】:
我的 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)
当我登录 Django admin 时,我添加了一些电影,然后添加了一些 cmets,选择与评论相关的电影对象。然后我还通过管理面板创建了几个用户。
我希望我的人际关系是:
电影可以有多个 cmets / 评论属于电影
用户可以有多个 cmets / Comments 属于用户
我认为,就像 cmets 和电影一样,我只需要将 user 定义为 comment 的外键。我正在努力做到这一点。我正在处理Django tutorials,但我看不到有关如何将其他表链接到用户的教程。
我认为我可以做这样的事情:
user = models.ForeignKey(User, on_delete=models.CASCADE)
像这样导入用户时:
from django.contrib.auth.models import User
目前的结果是,如果我保留user = models.ForeignKey(User, on_delete=models.CASCADE),我会得到 err_connection_refused
【问题讨论】:
-
你可以看到这个问题link,也许对你有帮助。
-
err_connection_refused错误与外键无关。这意味着 Django 无法连接到数据库。 -
您是否更改了设置中的默认用户模型?而不是直接在外键中使用用户,你应该使用
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) -
@kichik 我有一些缩进错误要修复。谢谢
-
@AngelF 与
from django.conf import settings一起添加有帮助。但是,当我在选择与新评论相关的电影和用户时尝试添加新评论时,我得到“表films_comment 没有名为user_id 的列”。我需要像我有Film和Comment一样将它添加到models.py 吗?还是我当前的代码不够用?我以为我在class Comment下定义了这个