Я не вижу никаких синтаксических ошибок, но я продолжаю получать ModelForm не указан класс модели - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь связать форму с моей моделью, но получаю сообщение об ошибке на странице.Я не вижу никаких синтаксических ошибок, и я не уверен, где могла быть ошибка в логике.

Я уже пытался изменить мета на мета, это не имело никакого эффекта.У меня уже есть некоторые объекты в таблице, это может быть причиной проблемы?

# URLS________
path('posts/create_post/', views.create_post, name='create_post'),


#MODELS________
class Posts(models.Model):
    priority = models.CharField(max_length=30)
    client = models.CharField(max_length=30)
    title = models.CharField(max_length=150)
    assigned_to = models.ForeignKey(Users, on_delete=models.CASCADE)
    exp_comp_time = models.FloatField(max_length=4)
    percent_comp = models.FloatField(max_length=4)
    post_date = models.CharField(max_length=20)
    due_date = models.CharField(max_length=20)
    latest_mod = models.CharField(max_length=20, null=True)

class PostsForm(forms.ModelForm):
    class meta:
        model = Posts
        fields = '__all__' 


#VIEWS________
def create_post(request):
    """"Renders the create task page"""
    if request.method == "GET":
        form = PostsForm()
        return render(request, 'app/form.html', {'form': form})
    elif request.method == "POST":
        form = PostsForm(request.POST)
        form.save()
        return HttpResponseRedirect('/posts')


#FORM.html________
{% extends "app/layout.html" %}

{% block content %}

<form method="post">
    {% csrf_token %}
    {{ form }}
    <button type="submit">Submit Task</button>
</form>

{% endblock %}

Должна загружаться страница формы сообщения.

Traceback:

File "C:\DjangoWebProject1\DjangoWebProject1\office_proj_env\lib\site-packages\django\core\handlers\exception.py" in inner
  34.             response = get_response(request)

File "C:\DjangoWebProject1\DjangoWebProject1\office_proj_env\lib\site-packages\django\core\handlers\base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, 
request)

File "C:\DjangoWebProject1\DjangoWebProject1\office_proj_env\lib\site-packages\django\core\handlers\base.py" in _get_response
 113.                 response = wrapped_callback(request, *callback_args,**callback_kwargs)

File "C:\DjangoWebProject1\DjangoWebProject1\app\views.py" in create_post
 81.         form = PostsForm()

File "C:\DjangoWebProject1\DjangoWebProject1\office_proj_env\lib\site-packages\django\forms\models.py" in __init__
 285.             raise ValueError('ModelForm has no model class 
 specified.')

Exception Type: ValueError at /posts/create_post/
Exception Value: ModelForm has no model class specified.

1 Ответ

1 голос
/ 27 июня 2019

Вам нужно использовать заглавные буквы Meta:

from django.forms import ModelForm    ### Double check your import statement
from django.db import models

...

class PostsForm(ModelForm):           ### Notice that I have changed the inherited class name
    class Meta:                       ### HERE
        model = Posts
        fields = '__all__' 

Я уже пытался изменить мета на мета

Обязательно сохраните файл после внесения изменений.

У меня уже есть некоторые объекты в таблице, это может быть причиной проблемы?

номер

Последнее, что нужно проверить, это убедиться, что ваша модель определена над соответствующей формой.

...