我想为相关的渴望保存回复。如果有人发布了任何渴望,那么对该渴望的回复应该被分配给该特定的渴望。我不想在数据库中保存渴望的对象后创建用于回复的对象。对于一个渴望,有许多答案。这个回答应该与这个回答所表达的渴望有关。在下面的代码中,当我提交一个渴望时,它也会创建一个空白的回复对象。如果提交了渴望,它应该只为渴望创建对象。不回答。如果repy满足了这种渴望,那么它应该只与特定的渴望有关。使用任何关系。回复和渴望应该显示在一个单一的模板上。
views.py
@login_required
def crave_edit(request, id=None):
instance = get_object_or_404(crave_data, pk=id) if id else None
crave_made = None
if instance and instance.person != request.user:
raise PermissionDenied()
if request.method=="POST":
form=CraveDataForm(request.POST, request.FILES, instance=instance)
if form.is_valid():
crave_made = form.save(commit=False)
crave_made.person = request.user
crave_made.save()
else:
form=CraveDataForm(instance=instance)
return render(request, "crave/crave.html", {'form' : form,'crave_made':crave_made})
@login_required
def crave_view(request, id):
#what id is this? this is crave_data id
crave = get_object_or_404(crave_data, pk=id)
check = comments.objects.filter(crave=crave.id)
if request.method=="POST":
form=CraveReplyForm(request.POST, request.FILES)
if form.is_valid():
reply = form.save(commit=False)
reply.person=request.user
reply.crave = crave
reply.save()
else:
form=CraveReplyForm()
print "somehave"
print id
print "alasj"
return render(request, "crave/comment.html", {'crave': crave, 'form' : form, 'check':check})
型号.py
class crave_data(models.Model):
person = models.ForeignKey(User)
post=models.TextField(blank = True,null = True)
date= models.DateTimeField(auto_now_add=True, blank=True)
def __unicode__(self):
return self.post
class comments(models.Model):
crave=models.ForeignKey(crave_data, blank = True,null = True)
reply=models.CharField(max_length=1000, blank = True,null = True)
date= models.DateTimeField(auto_now_add=True, blank=True)
def __unicode__(self):
return self.reply
请帮我一下。提前非常感谢。
您只需要crave_data-id,
在crave_edit视图中进行更改
crave_made = None
并将crave_made变量传递给模板。
和在临时
crave.html
{% if crave_made %}
<a href="/crave/reply_get/{{ crave_made.id }}">Continue</button>
{% endif %}
希望这对你有帮助。