Таблица django -tables2 больше не отображается при добавлении формы электронной почты - PullRequest
0 голосов
/ 11 апреля 2020

У меня проблема с тем, что моя 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 и форму электронной почты на той же главной странице? Заранее спасибо!

...