【问题标题】:Django "no such column: mains_profile_friends.user_id"Django“没有这样的列: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

标签: html django django-models django-views django-templates


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-11-07
    • 2021-11-13
    • 2015-02-25
    • 2020-08-16
    • 2014-09-23
    • 1970-01-01
    • 2020-12-10
    • 2015-12-07
    • 2019-05-20
    相关资源
    最近更新 更多