как отобразить уведомление в Django - PullRequest
0 голосов
/ 12 мая 2019

Здесь у меня есть код для информационного бюллетеня. И с этим кодом я хочу уведомить, как 1 новое электронное письмо, добавленное внутри имени модели на странице администратора, если новое электронное письмо добавлено из формы информационного бюллетеня. И после того, как администратор проверит добавленное электронное письмо .Тогда в названии модели не должно быть сообщений, таких как новые электронные письма. Как я могу это сделать? Может ли кто-нибудь помочь мне отредактировать этот код? Я получил это исключение с этим кодом Тип исключения: TypeError Значение исключения:
Объект типа Newsletter не поддерживает JSON-сериализацию

models.py

class Newsletter(models.Model):
    email = models.EmailField()
    date_joined = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.email

forms.py

class NewsletterForm(forms.ModelForm):
    # def clean_email(self):
    #     email = self.cleaned_data['email']
    #     if User.objects.filter(email=email).exists():
    #         raise ValidationError('You Already Joined')
    #     return email
    class Meta:
        model = Newsletter
        fields = '__all__'

views.py

def newsletter(request):
    initial = {'email': [], 'count': 0}
    session = request.session.get('data', initial)
    if request.method == "POST":
        form = NewsletterForm(request.POST or None)
        if form.is_valid():
            email = form.save(commit=False)
            session['email'].append(email)
            session['count'] += 1
            request.session['data'] = session
            email.save()
            messages.success(request, 'Thank You for Joining.')
            return redirect('/')

index.html

        {% for model in app.models %}
                    <tr class="model-{{ model.object_name|lower }}">
                    {% if model.admin_url %}
                        <th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}
    {% if model.name == 'Newsletter' %}
<b style="color:red;">{{request.session.data.count}} New Email Added </b>
{% endif %}</a></th>
                    {% else %}
                        <th scope="row">{{ model.name }}</th>
                    {% endif %}

                    {% if model.add_url %}
                        <td><a href="{{ model.add_url }}" class="addlink">{% trans 'Add' %}</a></td>
                    {% else %}
                        <td>&nbsp;</td>
                    {% endif %}

шаблон

<form action="" method="post">
                                {% csrf_token %}
                                <input type="email" name="email" placeholder="Subscribe Our Newsletter" class="newsletter-box" required>
                                <button class="news-submit" type="submit">Join</button>
                            </form>
...