我有这些型号
class Review(models.Model):
# SET_NULL ensures that when a company is deleted, their reviews remains
company = models.ForeignKey(Company, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
# SET_NULL ensures that when a user is deleted, their reviews get deleted too
review_text = models.TextField(max_length=500, verbose_name='Your Review: (Maximum of 200 Words)')
rating = Int_max.IntegerRangeField(min_value=1, max_value=5)
date_added = models.DateField('Review Date', auto_now_add=True)
def __str__(self):
return self.review_text
class Response(models.Model):
user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
review = models.ForeignKey(Review, on_delete=models.CASCADE)
response = models.TextField(max_length=200, verbose_name='Your Response')
date_added = models.DateField('Response Date', auto_now_add=True)
def __str__(self):
return self.response
class ResponseReply(models.Model):
user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
response = models.ForeignKey(Response, on_delete=models.CASCADE)
review = models.ForeignKey(Review, on_delete=models.CASCADE)
reply = models.TextField(max_length=200, verbose_name="Your Reply")
date_added = models.DateField('Response Date', auto_now_add=True)
def __str__(self):
return self.reply
如何选择属于特定回复的ResponseReply,该回复也具有特定评论的外键。
我的视图宁愿返回一个列表,而不是评论模型的对象,因为有多个评论。以下是我的看法:
def profile_company(request):
print(request.user)
company = get_object_or_404(Company, user=request.user)
review = get_object_or_404(Review, company=company)
responses = get_list_or_404(Response, review=review)
response = get_object_or_404(Response, review=review)
responses = get_list_or_404(Response, review=review)
reply = get_object_or_404(Response, response=response)
company_reviews = company.review_set.all()
total_reviews = len(company_reviews)
print(company.average_rating)
form = ResponseForm()
if request.method == "POST":
form = ResponseForm(request.POST or None)
if form.is_valid:
data = form.save(commit=False)
data.user = request.user
data.review = review
data.save()
return redirect('profile_company')
context = {
'company': company,
'company_reviews': company_reviews,
'total_reviews': total_reviews,
'form': form,
'responses': responses,
'reply': reply,
}
return render(request, 'companyusers/profile_company.html', context)
问题是当我打电话给response = get_object_or_404(Response, review=review)
时,它失败了,因为评论可能不止一次。如何选择属于特定评论的特定回复。为了使我能够选择相关的回复。
非常感谢您!