我想获得一个ForeignKey关系的id或pk post_comment 但是我已经尝试了很多不同的方法来捕捉它并且我没有任何好结果,请各位给我一个牵手这种情况
在 views.py
中
class createComment(View):
form_class = CommentForm
template_name = "createComment.html"
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form':form})
def post(self, request):
obj = self.form_class(None)
obj.title_comment = self.request.POST['title_comment']
obj.body_comment = self.request.POST['body_comment']
obj.post_comment = self.pk
obj.save()
在 models.py
中
class Comment(models.Model):
user_comment = models.ForeignKey("auth.User")
title_comment = models.CharField(max_length=50)
body_comment = models.TextField()
timestamp_comment = models.DateTimeField(auto_now=True)
post_comment = models.ForeignKey("Post", null=True)
status_comment = models.BooleanField(default=True)
def __unicode__(self):
return unicode(self.title_comment)
def __str__(self):
return self.title_comment
答案 0 :(得分:0)
您可以在网址中传递主键,然后将其作为一种方式在您的课程中使用。
kwargs.get(pk name)
您可以将帖子更改为:
def post(self, request, *args, **kwargs)
然后,您不能只指定obj.post_comment = kwargs.get(pk)
实际获取对象。
Post.objects.get(pk = pk)
您可能还想考虑为模型字段将fieldname_comment
重命名为fieldname
。在_comment
模型中的每个字段上都有Comment
似乎有点多余。
答案 1 :(得分:0)
我不知道基于类的视图是如何工作的,但是我可以告诉你self.pk在基于类的视图中不存在,你会尝试获取表单实例并从此实例中获取I' d字段......