Я работаю над гибридом Quora и клоном StackOverflow.Я сделал представление "add_answer", которое позволяет мне добавлять ответы на вопросы, но по некоторым причинам оно показывает ошибку целостности: Вот изображение ошибки
Но когда я добавляю через админ-панель, он добавляетответ в базе данных.Что случилось?Код выглядит следующим образом:
- models.py:
class Answer(models.Model):
content = models.TextField()
user = models.ForeignKey(User,on_delete=models.CASCADE)
question = models.ForeignKey(Question,on_delete=models.CASCADE,blank=False)
created = models.DateTimeField(auto_now_add=True)
upvotes = models.PositiveIntegerField(default=0)
is_active = models.BooleanField(default=True)
def __str__(self):
return '{}\'s Answer'.format(self.user.username)
class Meta:
ordering = ('-upvotes','-created')
forms.py:
class AnswerForm(forms.ModelForm):
content = forms.CharField(widget=forms.Textarea,help_text='Your Answer in Detail. Note: MarkDown is enabled.')
class Meta:
model = Answer
fields = ['content']
def __init__(self,author,question,*args,**kwargs):
super().__init__(*args,**kwargs)
self.user = author
self.question = question
представление "add_answer" (views.py):
@login_required
def add_answer(request, pk):
ques = get_object_or_404(Question, pk = pk)
if request.method == 'POST':
form = AnswerForm(request.user,ques,request.POST)
if form.is_valid():
cd = form.cleaned_data
answer = form.save(commit=False)
answer.content = cd['content']
answer.save()
messages.success(request,'Success! Your Answer has been added!')
return redirect('forum')
else:
messages.error(request,form.errors)
else:
form = AnswerForm(request.user,ques)
return render(request,'discussion/answer_create.html',{'form':form})
answer_create.html (template):
{% extends 'base.html' %}
{% load markdownify %}
{% block title %} Add Answer {% endblock %}
{% block header %}
<h2 class="display-5" style="font-family: x-locale-heading-primary,zillaslab,Palatino,Palatino Linotype,x-locale-heading-secondary,serif;">
Add Answer:
</h2>
{% endblock %}
{% block content %}
{% if form.errors %}
<h4 class="alert alert-primary alert-warning" role="alert">Errors:<br> {{form.errors}} <hr></h4>
{% endif %}
<form action="" method="POST">
{% csrf_token %}
{{form.as_p}}
<input type="submit">
</form>
{% endblock %}
Было бы очень признательно, если бы кто-нибудь помог мне.