Я хочу создать форму создания пациента для моей системы с Django, но она не работает, и я получаю ошибку:
ValueError в / create / ModelForm не указан класс модели .
Я не могу этого понять. Я искал похожий вопрос и применяю некоторые решения, но он не работает. Где моя ошибка? Вы можете помочь мне? Большое спасибо за ваше внимание.
views.py
def patient_create(request):
if not request.user.is_authenticated:
return Http404()
form = PatientForm(request.POST or None, request.FILES or None)
if form.is_valid():
post = form.save(commit=False)
post.user = request.user
post.save()
messages.success(request, "Başarılı bir şekilde oluşturdunuz.", extra_tags='mesaj-basarili')
return HttpResponseRedirect(post.get_absolute_url())
context = {
'form': form
}
return render(request, "template/patient_form.html", context)
models.py
class newPatients(models.Model):
title = models.CharField(max_length=100)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
created_date = models.DateTimeField(default=timezone.now)
dept = models.TextField()
address = models.TextField()
phone = models.CharField(max_length=15)
notes = RichTextField(verbose_name="notes")
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
def get_create_url(self):
return reverse('post:create', kwargs={'slug': self.slug})
def get_unique_slug(self):
slug = slugify(self.title.replace('ı', 'i'))
unique_slug = slug
counter = 1
while newPatients.objects.filter(slug=unique_slug).exists():
unique_slug = '{}-{}'.format(slug, counter)
counter += 1
return unique_slug
def save(self, *args, **kwargs):
self.slug = self.get_unique_slug()
return super(newPatients, self).save(*args, **kwargs)
class Meta:
ordering = ['-created_date']
forms.py
from django.forms import ModelForm
from patients.models import newPatients
class PatientForm(ModelForm):
model = newPatients
fields = [
'title',
'first_name',
'last_name',
'dept',
'address',
'phone',
'notes',
]
traceback
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/create/
Django Version: 2.2.9
Python Version: 3.7.0
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users',
'patients',
'widget_tweaks',
'crispy_forms',
'ckeditor']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\core\handlers\base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\core\handlers\base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\edeni\senior\pharsys\patients\views.py" in patient_create
25. form = PatientForm(request.POST or None, request.FILES or None)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\models.py" in __init__
285. raise ValueError('ModelForm has no model class specified.')
Exception Type: ValueError at /create/
Exception Value: ModelForm has no model class specified.