首页 > 解决方案 > Django“没有这样的列:mains_profile_friends.user_id”

问题描述

我正在阅读 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)。我也迁移到了终端。

在这方面帮助我!我将非常感谢您的帮助。先感谢您。

标签: htmldjangodjango-modelsdjango-viewsdjango-templates

解决方案


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


推荐阅读