Так что это простой взгляд, который я написал.403 с классом класса django
class PostTestView(View):
def post(self, request, *args, **kwargs):
print request.POST
return HttpResponse("Hello there")
моего urls.py
имеет эту линию для выше точек зрения:
url(r'^test/create$',PostTestView.as_view(), name='app.views.create_test')
Но я получаю 405 Http error
когда я пытаюсь ударить http://127.0.0.1:8000/app/test/create
Это, видимо, означает, что мой метод post
не в список определенных методов. Но я определил его, как указано выше, на мой взгляд. Что здесь может быть неправильно? Я не знаю
На самом деле, попытаться избежать переопределения '' Post' и get' не напрямую, если вы точно знаете, что делаете. Вместо этого используйте общие CBV в качестве отправной точки, выбирая ее на основе того, что вы пытаетесь сделать с вашим представлением. –
Это классический вид (CBV). Если вы посмотрите на документацию django, https://docs.djangoproject.com/en/dev/topics/class-based-views/intro/ override метод get и post - это документированный способ сделать что-то. Я предполагаю, что вы ссылаетесь на общие представления на основе классов, и это хороший момент, если вы можете использовать общие представления на основе классов. – esauro
Вы правы, я говорил об общих CBV. Однако, в отличие от функциональных представлений, настоятельно рекомендуется найти подходящий общий CBV, прежде чем копать глубже, так как вы почти наверняка найдете его. Вот почему я сделал комментарий к вашему ответу (который не является неправильным) вместо того, чтобы писать другой ответ. –