У меня проблема с тем, что моя django -tables2 исчезает, когда я добавляю форму электронной почты на свой веб-сайт. Я думаю, что проблема заключается в urls.py, но я действительно не могу понять, что является причиной проблемы (я учусь django).
urls.py
urlpatterns = [
path('',PersonListView.as_view()),
path('', views.email, name='email'),
]
models.py
class Person (models.Model):
name = models.CharField(max_length=100, verbose_name="full name")
views.py
class PersonListView(SingleTableView):
Person.objects.all().delete()
CSV_PATH = 'data/names.csv'
with open(CSV_PATH, newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',', quotechar=',')
for row in spamreader:
Person.objects.create(name=row[0])
model = Person
table_class = PersonTable
template_name = 'blog/people.html'
def email(request):
if request.method == 'GET':
form = ContactForm()
else:
form = ContactForm(request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
from_email = form.cleaned_data['from_email']
message = form.cleaned_data['message']
try:
send_mail(subject, message, from_email, ['youremail@gmail.com'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('thanks')
return render(request, "blog/email.html", {'form': form})
def thanks(request):
return HttpResponse('Thank you for your message.')
forms.py
class ContactForm(forms.Form):
from_email = forms.EmailField(required=True)
subject = forms.CharField(required=True)
message = forms.CharField(widget=forms.Textarea)
чел. html
{% extends 'blog/base.html' %}
{% load render_table from django_tables2 %}
{% block people %}
<div>
{% render_table table %}
</div>
{% endblock %}
база. html
{% load static %}
<html>
<head>
<title>Test website</title>
<link rel="stylesheet" href="{% static 'css/blog.css' %}">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
<link href='//fonts.googleapis.com/css?family=Roboto:400,300,700,100' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
</head>
<body>
<body>
</div>
<div class="content container">
{% block people %}
{% endblock %}
{% block email %}
{% endblock %}
</div>
</body>
</body>
</html>
Может ли кто-нибудь помочь мне выяснить, как я могу получить django -tables2 и форму электронной почты на той же главной странице? Заранее спасибо!