django - IntegrityError NOT NULL 约束在 Django 中失败
问题描述
我有两个模型,问题和答案。当我尝试从用户端添加答案时出现此错误。(从管理面板添加是可以的)。我在 stackoverflow 和其他网站上经历了一些解决方案。我每次删除现有数据库并运行迁移,但没有任何效果。这是我的代码:
模型.py
from django.conf import settings
from django.db import models
from django.utils import timezone
class Question(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=300)
optional_description = models.TextField(blank=True, null=True)
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
class Answer(models.Model):
question = models.ForeignKey('ask.Question', on_delete=models.CASCADE, related_name='answers')
author = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
approved_answer = models.BooleanField(default=False)
def approve(self):
self.approved_answer = True
self.save()
def __str__(self):
return self.text
views.py 中的相关部分
def add_answer_to_que(request, pk):
que = get_object_or_404(Question, pk=pk)
if request.method == 'POST':
form = AnswerForm(request.POST)
if form.is_valid():
answer = form.save(commit=False)
answer.que = que
answer.save()
return redirect('ques_detail', pk=que.pk)
else:
form = AnswerForm()
return render(request, 'ask/add_answer_to_que.html', {'form': form})
表格.py
class AnswerForm(forms.ModelForm):
class Meta:
model = Answer
fields = ('author', 'text',)
单击编写答案按钮会转到此页面
但是在添加一些内容并单击发送后会导致此错误。
解决方案
错误是一致的answer.que = que
。
只需将该行更改为answer.question = que
因为您没有que
在Answer
表中命名任何列。
希望能帮助到你。
推荐阅读
- r - 使用 R,我尝试 1)子集 191 个 .txt 文件,然后 2)将生成的较小数据集合并到一个文件中。
- python - 检查两个无序序列是否相等
- jwt - 使用 JWT 身份验证的 laravel 5.7 中不存在身份验证控制器
- html - 创建在鼠标悬停时展开的号召性用语按钮
- powershell - Invoke-WebRequest 未被识别为 cmdlet Windows 7 Powershell 的名称
- regex - 在两组字符之间获取一组目标字符
- c# - C# Selenium - 抛出异常:'OpenQA.Selenium.StaleElementReferenceException'
- r - 无法写入 hdf5 文件:H5Dcreate 中的错误
- c# - 如何在 Unity3D 中锁定 z 旋转?
- r - R修复与五大湖接壤的州的形状