Python 不允许使用方法(POST):/experience/create review/

Python 不允许使用方法(POST):/experience/create review/,python,html,django,django-models,django-views,Python,Html,Django,Django Models,Django Views,我试图创建一个视图,在我的Django应用程序中添加对特定产品的评论,但我一直得到一个405错误方法不允许 我们中有两个人试图解决这个问题,但什么也做不到 以下是我们迄今为止一直在尝试的: Models.py class Review(models.Model): user = models.ForeignKey(UserProfile) product = models.ForeignKey(Product) review = models.TextField() is_p

我试图创建一个视图,在我的Django应用程序中添加对特定产品的评论,但我一直得到一个405错误
方法不允许

我们中有两个人试图解决这个问题,但什么也做不到

以下是我们迄今为止一直在尝试的:

Models.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)
Views.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
url.py(未找到重复项)

url(r'^experience/(?P[\w-]+)/$),ProductView.as_view(),name='experience'),
url(r“^experience/create review/$”,ReviewCreate.as_view(),name='add-review'),
url(r'^reservation/(?P[\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>

{%csrf_令牌%}
阿维斯波西蒂夫酒店
阿维斯·内加蒂夫
公开者
如何解决这个问题


请帮助

必须将
添加评论
视图置于
体验
的顶部。在您的情况下,
创建评论
将与
[\w-]+
匹配,Django将尝试向
体验
视图发送POST请求

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'),
url(r'^experience/create review/$',ReviewCreate.as_view(),name='add-review'),
url(r“^experience/(?P[\w-]+)/$”,ProductView.as_view(),name='experience'),
url(r'^reservation/(?P[\w-]+)/$),experienceBookingView.as_view(),name='booking'),
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'),