Django“没有这样的列:mains_profile_friends.user_id”

Posted

技术标签:

【中文标题】Django“没有这样的列:mains_profile_friends.user_id”【英文标题】:Django "no such column: mains_profile_friends.user_id" 【发布时间】:2021-04-03 21:53:15 【问题描述】:

我正在阅读 Django 教程,并在我的博客应用程序中尝试在浏览器中(在本地主机中)打开朋友页面时遇到此错误。

我使用 Django==3.1.2。

views.py

@login_required
def friend_list(request):
    p = request.user.profile
    friends = p.friends.all()

    context = 'p':p,'friends':friends
    return render(request, 'mains/friends.html' , context )

models.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE,default='',unique=True)
    full_name = models.CharField(max_length=100,default='')
    friends = models.ManyToManyField(User, related_name='friends',blank=True,default='',null=True)

friends.html

% block content %

<div class="container">
  <div class="row">
    <div class="col-md-8">
      % if friends %
      <div class="card card-signin my-5">
        <div class="card-body">
          % for user_p in friends %
          <a href=" user_p.get_absolute_url "> user </a>
          <a class="text-dark" href=" user_p.get_absolute_url "
        ><b> user_p </b></a>
            <br /><br />
         % endfor %
      % endif %

% endblock content %

urls.py

path('friends/', views.friend_list, name='friend_list'), 

问题

当我在浏览器中打开 friends.html 时,它给了我一个错误:no such column: mains_profile_friends.user_id

我尝试过的。

1)。我已经替换了所有与friend_list 视图相关的名称。

2)。我也迁移到了终端。

帮帮我!我将非常感谢您的帮助。提前谢谢你。

【问题讨论】:

mains:delete_friend 应该通向哪里? 您确实发生了一些迁移冲突,只需通过删除所有迁移文件但保留 init.py、删除 sqlite3.db、最后 makemigrations && migrate 来重新启动数据库 @ZeyadShaban,我已经删除了除 init.py 之外的所有迁移,但没有任何反应。 你删除了 sqlite3.db 吗?你也重新迁移了(pytohn3 manage.py makemigrations python3 manage.py migrate) 现在是python manage.py dumpdata &gt; seed.json 【参考方案1】:

您必须删除您的数据库,然后删除迁移,但将 init.py 保留在每个应用程序文件夹的迁移文件夹中,然后最后使用 python3 manage.py makemigrations 然后 python3 manage.py migrate 再次迁移。如果您有不想丢失的数据,请获取您拥有的数据的 JSON 副本,我认为它是使用 python3 manage.pydumb > seed.json 完成的,我不确定

【讨论】:

以上是关于Django“没有这样的列:mains_profile_friends.user_id”的主要内容,如果未能解决你的问题,请参考以下文章

Django之路

Django系列

django 错误

mac电脑安装django ,运行django报错解决

Django 大神带你飞系列~走进Django

django的文档