Я пишу приложение, в котором люди могут подавать свои жалобы, связанные с некоторыми проблемами. После отправки формы она должна быть перенаправлена на страницу, где указаны детали жалобы, такие как область жалобы, заголовок, описание и т. Д. c.
Но после отправки формы она бросает IntegrityError.
Я прочитал об этом и рассмотрел некоторые решения:
- Кто-то предложил мне удалить некоторые прошлые миграции и запустить их снова. Я очистил миграции, запустил их снова и сделал несколько сообщений через администратора, но он выдает ту же ошибку.
- В некоторых сообщениях предлагается добавить null = True, пусто = True, но я не понимаю, где они должно быть добавлено в моем случае. Я также не хочу добавлять null = True, пусто = True, потому что я не хочу, чтобы какое-либо поле оставалось пустым.
Ниже приведены мои models.py:
from django.db import models
from django.urls import reverse
# Create your models here.
class Complaint(models.Model):
""" Details of the complaint """
resident = models.ForeignKey('auth.User', on_delete=models.CASCADE)
AREA = [('PL', 'Plumbing'), ('EL', 'Electricity'), ('CP', 'Carpenter'), ('CO', 'Construction'), ('DS', 'Disputes'), ('OT', 'Other'),]
matter = models.CharField(max_length=2, choices=AREA)
title = models.CharField(max_length=200)
text = models.TextField()
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('comp_detail', args=[str(self.id)])
Ниже приведен мой urls.py, который я создал в своей «жалобе»:
Примечание. Я использовал представления на основе классов в моих views.py
from django.urls import path
from .views import CompListView, CompDetailView, CompCreateView
urlpatterns = [
path('comp/new/', CompCreateView.as_view(), name='comp_new'),
path('comp/<int:pk>/', CompDetailView.as_view(), name='comp_detail'),
path('', CompListView.as_view(), name='home'),
]
Некоторая помощь будет оценили.