python - 不允许的方法 (POST):/experience/create-review/
问题描述
我正在尝试创建一个视图,该视图将为我的 Django 应用程序中的特定产品添加评论,但我不断收到 405 错误Method Not Allowed
。
我们 2 人试图解决这个问题,但什么也做不了。
到目前为止,这是我们一直在尝试的:
模型.py;
class Review(models.Model):
user = models.ForeignKey(UserProfile)
product = models.ForeignKey(Product)
review = models.TextField()
is_positive = models.BooleanField()
timestamp = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = (('user', 'product'),)
def __str__(self):
return '{}'.format(self.review)
视图.py;
class ReviewCreate(LoginRequiredMixin, UserOnlyMixin, CreateView):
model = Review
fields = ['user', 'product', 'review', 'is_positive']
template = "product.html"
def get_success_url(self):
kwargs = {'slug': self.object.product.slug}
url = reverse_lazy("experience", kwargs=kwargs)
return url
Urls.py(未找到重复项);
url(r'^experience/(?P<slug>[\w-]+)/$', ProductView.as_view(), name='experience'),
url(r'^experience/create-review/$', ReviewCreate.as_view(), name='add-review'),
url(r'^reservation/(?P<slug>[\w-]+)/$', BookingView.as_view(), name='booking'),
在模板product.html中;
<form action="{% url 'add-review' %}" class="writearev-form" method="post">
{% csrf_token %}
<input type="hidden" name="product" value="{{ object.pk }}">
<input type="hidden" name="user" value="{{ user.userprofile.pk }}">
<label class="control control--radio control-one">
<input value="true" id="chkTrue" type="radio" name="is_positive">Avis positif
<div class="control__indicator"></div>
</label>
<label class="control control--radio control-two">
<input value="false" id="chkFalse" type="radio" name="is_positive">Avis négatif
<div class="control__indicator"></div>
</label>
<textarea name="review" for="writearev-label" type="textarea" class="input-writearev" placeholder="Rédiger votre avis.."></textarea>
<button type="submit" class="btn-writearev">Publier</button>
</form>
如何解决这个问题?
请帮忙
解决方案
视图add-review
必须放在. experience
在您的情况下,create-review
将匹配[\w-]+
并且 Django 将尝试发送 POST 请求以进行experience
查看。
url(r'^experience/create-review/$', ReviewCreate.as_view(), name='add-review'),
url(r'^experience/(?P<slug>[\w-]+)/$', ProductView.as_view(), name='experience'),
url(r'^reservation/(?P<slug>[\w-]+)/$', experienceBookingView.as_view(), name='booking'),
推荐阅读
- cplex - 错误的 CPLEX 优化结果
- c++ - 如何安装相关的 C++ 库以避免链接器命令失败?
- javascript - 从反应输入表单获取数据时遇到问题
- jquery - 在为 React 项目工作一段时间后,我收到所有“npm install”命令的以下错误
- asp.net-mvc - 如何在 StartUp.Auth.cs 中使用 Autofac 进行依赖注入
- javascript - 关闭选项卡时如何发出socketIO事件
- python - 在中心设置 ttk Notebook 选项卡 [Python]
- haskell - Haskell返回十六进制值的列表
- php - 在laravel中带有文件上传循环的数组插入数据库
- python - 如何修复 docplex 错误?它在 CPLEX 中运行良好