我正在尝试将外部关键字添加到模型Article.New列:author。
title=models.CharField(max_length=30);
description=models.TextField();
date=models.DateTimeField(auto_now_add=True);
author=models.ForeignKey(User,default=None,on_delete=models.PROTECT)
在迁移后,我得到了错误消息:
在/ articles /的OperationalError没有这样的列: article_article.author_id
文章列表:
def article_list(requwest):
articles=Article.objects.all().order_by('date')
return render(requwest,"articles/article_list.html",{'articles':articles})
模板:
<div class="articles">
{% for article in articles %}
<div class="article">
<p>{{article.snipped}}</p>
<p>{{article.date}} </p>
</div>
{% endfor %}
</div>
我使用本课程:lesson
After update models to:
author = models.ForeignKey(User, blank=True, on_delete=models.PROTECT)
django.db.utils.OperationalError:没有这样的列: article_article.author_id
答案 0 :(得分:0)
python manage.py makemigrations
python manage.py migrate
答案 1 :(得分:0)
迁移是Django将您对模型所做的更改(添加字段,删除模型等)传播到数据库模式的一种方法。
出现此错误是因为您尚未迁移具有新更改的数据库(即<div data-hook="review-collapsed" aria-expanded="false" class="a-expander-content a-expander-partial-collapse-content" style="padding-bottom: 19px;">5 th day after...</div>
字段)
首先,您必须将 author
添加为模型,
null=True
然后,打开终端并逐个运行命令
1. author=models.ForeignKey(User,default=None,null=True,on_delete=models.PROTECT)
2. python manage.py makemigrations
在这里您可以找到有关Django迁移的不错的文章,Django Migrations: A Primer
答案 2 :(得分:0)
author=models.ForeignKey(User,blank=True,on_delete=models.PROTECT)
然后运行迁移。
答案 3 :(得分:0)
答案:
1)模型:
author = models.ForeignKey(User, null=True, blank=True, on_delete=models.PROTECT)
2) Dell db.sqlite3
3) python manage.py makemigrations
4) python manage.py migrate