Я получаю этот метод не разрешено (отправлять), как я не могу опубликовать свои формы. Что я мог делать неправильно. Я новичок в django. Может быть, мой url.py неверен или мой идентификатор формы неверен, что не позволяет публиковать данные. У меня есть файл forms.py, но я не уверен, что это может быть проблемой для моей проблемы
views.py
class ContactUsView(ContactFormView):
""" Contact Us Form View """
form_class = ContactUsForm
def get_success_url(self):
return reverse('messaging:contact_form_sent')
def clear_notification(request):
""" Clears the notification for a given user"""
Notifications.objects.filter(user=request.user).delete()
return redirect(reverse('accounts:dashboard', args=(request.user,)))
urls.py
urlpatterns = [
path(
'contact/',
views.ContactUsView.as_view(),
name='contact_form'),
path(
r'contact/sent/',
TemplateView.as_view(
template_name='contact_form/contact_form_sent.html'),
name='contact_form_sent'),
path(r'clear/', views.clear_notification, name='clear_notification'),
]
contact_form.html
<div class="row">
<form id='ContactUsForm' method='post' action={% url 'messaging:contact_form_sent' %}><br>
{% csrf_token %}
<div class="col-md-6">
<div class="form-group">
{% csrf_token %}
<input type="text" class="form-control input-upper" id="fullname" placeholder="John Doe" name="fullname">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{% csrf_token %}
<input type="email" class="form-control input-upper" id="email" placeholder="Email" name="email">
</div>
</div>
</div><br><br>
<div class="row">
<div class="col-md-6">
<div class="form-group">
{% csrf_token %}
<input type="text" class="form-control input-upper" id="subject" placeholder="Subject" name="subject">
</div>
</div>
</div><br>
<div class="row">
<div class="col-md-10">
<div class="form-group">
{% csrf_token %}
<textarea class="form-control input-upper" id="message" placeholder="Message" name="message"></textarea>
</div>
{% csrf_token %}
<button type="submit" class="btn btn-primary btn-send-contact" value="SUBMIT">SEND</button>
</div>
</div><br><br>
</form>
</div>
</div>
</div>
{% endblock %}
базовый вид
"""
"""
from django.views.generic.edit import FormView
from .forms import ContactForm
try:
from django.urls import reverse
except ImportError: # pragma: no cover
from django.core.urlresolvers import reverse # pragma: no cover
class ContactFormView(FormView):
form_class = ContactForm
recipient_list = None
template_name = 'contact_form/contact_form.html'
def form_valid(self, form):
form.save()
return super(ContactFormView, self).form_valid(form)
def get_form_kwargs(self):
# ContactForm instances require instantiation with an
# HttpRequest.
kwargs = super(ContactFormView, self).get_form_kwargs()
kwargs.update({'request': self.request})
# We may also have been given a recipient list when
# instantiated.
if self.recipient_list is not None:
kwargs.update({'recipient_list': self.recipient_list})
return kwargs
def get_success_url(self):
return reverse('contact_form_sent')