我在 django 中有一个表格,用于评级。如果用户将提交该表单,那么它将保存procuct_id并保存user_id在数据库中,以便我可以计算用户在登录后给出的评分。但是,当我提交此表单时,它正在显示302 found。所以我检查后HttpResponse它正在打印Hi,请检查我的代码并让我知道我在哪里弄错了。
这是我的models.py文件...
class Comment(models.Model):
STATUS=(
('New', 'New'),
('True', 'True'),
('False', 'False')
)
product=models.ForeignKey(Product, on_delete=models.CASCADE)
user=models.ForeignKey(User, on_delete=models.CASCADE)
subject=models.CharField(max_length=250, blank=True)
comment=models.CharField(max_length=50, blank=True)
rate=models.IntegerField(default=1)
ip=models.CharField(max_length=250, blank=True)
status=models.CharField(max_length=10, choices=STATUS)
created_at=models.DateField(auto_now_add=True)
updated_at=models.DateField(auto_now=True)
def __str__(self):
return self.subject
class CommentForm(ModelForm):
class Meta:
model=Comment
fields=['subject', 'comment', 'rate']
这是我的views.py文件...
def addcomment(request,id):
url = request.META.get('HTTP_REFERER') #get last url
#return HttpResponse(url)
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
data = Comment() #create relation with model
#data.name = form.cleaned_data['name'] #get form input data
data.subject = form.cleaned_data['subject']
data.comment = form.cleaned_data['comment']
data.ip = request.META.get('REMOTE_ADDR')
data.product_id=id
current_user=request.user
data.user_id=current_user.id
data.save() #save data to table
messages.success(request, "Your Review has been Send. Thank you for your interest")
return HttpResponse("Hello")
return HttpResponse("Hi")
这是我的urls.py文件...
urlpatterns = [
path('product/addcomment/<int:id>', views.addcomment, name='addcomment'),
]
这是我的product.html文件....
<div class="tab-pane fade" id="top-review" role="tabpanel" aria-labelledby="review-top-tab">
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{message.tags}}" role="alert">
{{ message }}
</div>
{% endfor %}
{% endif %}
<form class="theme-form" method="POST" action="/product/addcomment/{{ product.id }}">
{% csrf_token %}
<div class="form-row">
<div class="col-md-12">
<label for="review">Review Title</label>
<input type="text" class="form-control" name="subject" placeholder="Enter your Review Subjects" required="">
</div>
<div class="col-md-12">
<label for="review">Review Comment</label>
<textarea class="form-control" name="comment" placeholder="Wrire Your Comment Here" rows="6"></textarea>
</div>
<div class="col-md-12">
{% if user.id is not None %}
<button class="btn btn-solid" type="submit">Submit Your Review</button>
{% else %}
You must be Loggedin to post a review.
{% endif %}
</div>
</div>
</form>
</div>