Python Django从views.py动态获取PK
我有一个视图,可以呈现注释表单和模板: 视图.pyPython Django从views.py动态获取PK,python,django,Python,Django,我有一个视图,可以呈现注释表单和模板: 视图.py def news(request): if request.method == "POST": form = CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.post = Article.objects.get(pk=2)
def news(request):
if request.method == "POST":
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = Article.objects.get(pk=2)
print(comment.post)
comment.author = request.user.username
comment.save()
return HttpResponseRedirect('')
else:
form = CommentForm()
return render(request, '../templates/news.html', context={"form": form})
class Comment(models.Model):
post = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='comments', blank=True)
author = models.TextField()
text = models.TextField()
def __str__(self):
return self.text
class CommentForm(ModelForm):
class Meta:
model = Comment
fields = ('text',)
型号.py
def news(request):
if request.method == "POST":
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = Article.objects.get(pk=2)
print(comment.post)
comment.author = request.user.username
comment.save()
return HttpResponseRedirect('')
else:
form = CommentForm()
return render(request, '../templates/news.html', context={"form": form})
class Comment(models.Model):
post = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='comments', blank=True)
author = models.TextField()
text = models.TextField()
def __str__(self):
return self.text
class CommentForm(ModelForm):
class Meta:
model = Comment
fields = ('text',)
forms.py
def news(request):
if request.method == "POST":
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = Article.objects.get(pk=2)
print(comment.post)
comment.author = request.user.username
comment.save()
return HttpResponseRedirect('')
else:
form = CommentForm()
return render(request, '../templates/news.html', context={"form": form})
class Comment(models.Model):
post = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='comments', blank=True)
author = models.TextField()
text = models.TextField()
def __str__(self):
return self.text
class CommentForm(ModelForm):
class Meta:
model = Comment
fields = ('text',)
在views.py中,comment.post被分配给文章对象,我希望动态应用pk。我尝试在模板中这样做,将{{article.pk}}放在模板中输出文章对象的正确pk,但我不确定如何将其应用到表单中
模板看起来很简单:文章对象,下面是评论表单
问题很简单,我希望news(request)函数动态应用当前文章对象的pk,以便将评论转到正确的帖子。如果路径是唯一的,您可以使用该路径,也可以添加一个隐藏字段并将文章pk设置为值:
<input name="post" type="hidden" value={{ article.pk }} />
您可以从视图中的验证数据访问它。您可以通过post请求检索
pk
,只需在表单中添加一个输入字段,其中包含news.pk作为值。