【发布时间】:2020-07-15 12:43:03
【问题描述】:
我正在建立一个用于练习的问答网站,我希望每个答案都与作者和问题相关联,我设法将其与用户相关联,但我无法弄清楚问题部分。
代码如下:
models.py:
class Questiont(models.Model):
question = models.CharField(max_length=200)
description = models.TextField(null = True , blank=True)
date_posted =models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User,on_delete=models.CASCADE)
def __str__(self):
return self.question
class Answer(models.Model):
content = models.TextField(null=True,blank=True)
question = models.ForeignKey(Question, on_delete=models.CASCADE)
author = models.ForeignKey(User,on_delete=models.CASCADE)
date_posted = models.DateTimeField(default=timezone.now)
views.py(关联应该发生的地方):
class CreateAnswer(LoginRequiredMixin,CreateView):
model = Answer
fields = ['content']
context_object_name = 'answer'
success_url = reverse_lazy('Lisk home')
def form_valid(self, form):
form.instance.question = ?????????
form.instance.author = self.request.user
return super().form_valid(form)
如何指定答案指定的问题(form.instance.question)?假设正在回答的问题的 ID 在回答页面(模板)的 URL 中。
网址是这样的:
http://127.0.0.1:8000/question/22/createanswer/
urls.py(不是root):
politicspost=questioon (sorry if this is messy)
path('politics_topic/', views.Politics_topic.as_view(template_name='lisk_templates/politics_topic_template.html'),
name='Politics_topic'),
path('ask_politics/', views.Questionpolitics.as_view(template_name='lisk_templates/ask_politics_template.html'),
name='ask_politics'),
path('politicspost/<int:pk>/',views.Politics_post_details.as_view(template_name='lisk_templates/politics_post_details.html'),
name='politics_post_details'),
path('politicspost/<int:pk>/update/',views.Updatepolitics.as_view(template_name='lisk_templates/ask_politics_template.html'),
name='updatepoliticspost'),
path('politicspost/<int:pk>/delete/',views.Deletepoliticspost.as_view(template_name='lisk_templates/delete_politics_confirmation.html'),name ='deletepoliticspost'),
#ANSWER
path('politicspost/<int:id>/createanswer/',views.CreateAnswer.as_view(template_name='lisk_templates/createanswer.html'),name = 'createanswer'),
path('answers/',views.Answerslist.as_view(template_name='lisk_templates/politics_post_details.html'),name ='answers')
提前致谢。
【问题讨论】:
-
能否请您包含您的 urls.py 文件?
标签: python python-3.x django django-models django-views