Задать вопрос

В чем проблема, что я не могу сделать миграцию?

Задача, сделать капчу для сайта. Выбор пал на django-simple-captcha 0.5.13 В документации по установке есть пункт сделать миграцию в базу данных после того как подключил капчу в INSTALLED_APPS. Пытаюсь сделать миграцию и выходит такая вот ошибка django.db.utils.IntegrityError: UNIQUE constraint failed: new__feedback_reviews.email Подскажите как быть?

605308db47d13807811346.png

models.py

from django.db import models

        #Отзывы
class Reviews(models.Model): 
    email = models.EmailField(unique=True)
    name = models.CharField("Имя", max_length=100, db_index=True)
    text = models.TextField("Сообщение", max_length=5000)
    date_pub = models.DateTimeField(auto_now_add=True)


    def __str__(self):
        return self.name


forms.py

from django import forms
from django.db import models
from .models import Reviews
from django.core.exceptions import ValidationError


        #Форма отзывов
class ReviewForm(forms.ModelForm):


    class Meta:
        model = Reviews
        fields = ['text', 'name', 'email']

        widgets = {
            'text': forms.TextInput(attrs={'class': 'form-control'}),
            'name': forms.TextInput(attrs={'class': 'form-control'}),
            'email': forms.TextInput(attrs={'class': 'form-control'}),
        }


    def clean_email(self):
        new_email = self.cleaned_data['email']
        if Reviews.objects.filter(email=new_email).exists():
            raise ValidationError('You cannot reuse the same email')
        return new_email


views.py

from django.shortcuts import render, redirect
from django.views.generic import ListView, DeleteView
from django.views.generic.base import View
from .models import *
from .forms import ReviewForm
from django.conf import settings
from g_recaptcha.validate_recaptcha import validate_captcha

        #Форма отзывов
class Add_Review(View):
    def get(self, request):
        form = ReviewForm()
        return render(request, 'reviews.html', context={'form':form})

        #Проверка на валидность
    def post(self, request):
        bound_form = ReviewForm(request.POST)

        if bound_form.is_valid():
            new_review = bound_form.save()
            return redirect('detail_review_url')
        return render(request, 'reviews.html', context={'form':bound_form})


def review_detail(request):
    review = Reviews.objects.all()
    return render(request, 'see_reviews.html', context={'review':review})
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы