Здесь у меня есть код для информационного бюллетеня. И с этим кодом я хочу уведомить, как 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> </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>