我有一个应用程序,允许用户创建博客,并允许其他用户对彼此的博客发表评论。问题是。为了创建评论对象,我需要博客ID和文本。我可以通过帖子获取文本数据,但是我无法从POST获取博客ID,而我能想到的唯一方法就是通过表单中的值字段
如何从POST中获取值字段?
我的模特
class Blog(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
description = models.TextField()
class BlogComment(models.Model):
created = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User)
body = models.TextField()
blog = models.ForeignKey(Blog)
my forms.py
class BlogCommentForm(forms.ModelForm):
text = forms.CharField(required=False)
class Meta:
model = BlogComment
fields = ()
<form method ="POST"> {% csrf_token %}
<input type = "hidden" name="d" value= "blog.id" />
{{form}}
</form>
我的观点
def Blogs(request,blog_id):
form = BlogCommentForm(request.POST)
if request.method == "POST":
if form.is_valid():
text = form.cleaned_data['text']
value = form.cleaned_data['value']
form = BlogCommentForm()
blog.objects.get(pk=blog_id)
comment = BlogComment.objects.filter(blog=blog)
return render(request,'blogcomment.html',{'comment':comment,'form':form})
答案 0 :(得分:1)
request.POST['d']
或者如果没有使用
则避免提出Exception
request.POST.get('d', False)
答案 1 :(得分:1)
您始终可以从url中的?=参数获取博客ID。 当用户评论某人的博客时,该网址可能是http://yoursite.com/blog/id/comment或http://yoursite.com/blog/comment?blogid=12345。