【问题标题】:I don't see any syntax errors but I keep getting ModelForm has no model class specified我没有看到任何语法错误,但我不断收到 ModelForm has no model class specified
【发布时间】:2019-11-09 19:07:46
【问题描述】:

我正在尝试将表单链接到我的模型,但页面上不断出现值错误。我没有看到任何语法错误,也不确定逻辑缺陷可能出在哪里。

我已经尝试将 meta 更改为 Meta,但没有效果。我的表中已经有一些实体会导致问题吗?

# 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.

【问题讨论】:

    标签: django forms model valueerror


    【解决方案1】:

    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__' 
    

    我已经尝试将 meta 更改为 Meta

    确保在进行更改后保存文件。

    我的表中已经有一些实体会导致问题吗?

    没有。

    最后要检查的是确保您的模型在匹配表单上方定义。

    【讨论】:

    • 解决了,我想我只需要重置服务器。
    猜你喜欢
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 2023-03-22
    相关资源
    最近更新 更多