html - 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)。我也迁移到了终端。
在这方面帮助我!我将非常感谢您的帮助。先感谢您。
解决方案
您必须删除数据库,然后删除迁移,但将 init.py 保留在每个应用程序文件夹的迁移文件夹中,最后使用 python3 manage.py makemigrations 然后 python3 manage.py migrate 再次迁移。如果您有不想丢失的数据,请获取您所拥有数据的 JSON 副本,我认为这是使用 python3 manage.pydumb > seed.json 完成的,我不确定
推荐阅读
- c++ - 在没有活动异常的情况下调用终止(抛出 catch all 表达式)
- r - R中逻辑回归的模型框架默认错误变量长度不同
- python-3.x - 这两个python3版本有什么区别?
- sql - 如何使用 Python/Django 更新/保存数据库中的 oracle 同义词
- node.js - 机器人框架 v4 相当于 Session.delay()?
- unique-id - 如何禁用 Chrome 元素唯一 ID 检查
- javascript - 如何从 Google Apps 脚本中的 URL 获取音频对象?
- c++ - 使用vs2017的c ++中的OpenCascade链接错误
- java - JPA 复合主键/外键映射
- entity-framework-core - 使用池时重置 DbContext 时调用什么?