python - 试图连接一个 ModelForm
问题描述
由于“ModelForm 未指定模型类”,我收到“值错误”。
我试图检查:models.py forms.py 和 views.py 但对我来说一切看起来都不错
视图.py:
class CreatePostView(LoginRequiredMixin,CreateView):
login_url='/login/'
redirect_field_name='Myblog/post_detail.html'
form_class = PostForm
model = Post
模型.py:
class Post(models.Model):
author = models.ForeignKey('auth.User',on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True,null=True)
表格.py:
class PostForm(ModelForm):
class meta:
model = Post
fields = ('author','title','text')
从 app.urls.py url(r'^post/new/$',views.CreatePostView.as_view(),name='post_new'),
解决方案
Meta
是大写的,根据PEP-8,类的名称都以大写开头。在你的表格中,你应该写:
# app/forms.py
class PostForm(ModelForm):
class Meta:
model = Post
fields = ('author','title','text')
既然你把它写成
,Django 确实不明白metamodel
你在用什么。
但是,如果您不编写包含特定项目的表单,则可以 - 就像@DanielRoseman所说,只需在CreateView
[Django-doc]中定义它:
class CreatePostView(LoginRequiredMixin,CreateView):
login_url='/login/'
redirect_field_name='Myblog/post_detail.html'
model = Post
fields = ('author', 'title', 'text')
推荐阅读
- javascript - React-Redux:Jest 未能测试异步操作(始终通过)
- java - 如何使用正则表达式删除文件中的重复单词(单词不会连续)?
- sql - 检查 postgres 中值的出现 - NodeJS
- mysql - 来自csv数据的Mysql更新命令
- html - 创建一个既包含响应式又覆盖整个浏览器宽度和高度的背景图像
- swift - 在 Swift 中复制视图控制器
- laravel - laravel 关系/无法通过父表获取子表数据
- pentaho-spoon - Pentaho:组合查找/更新不处理源中的所有行
- javascript - 有没有办法减少 if else 情况?
- postgresql - PGAdmin 4 中的 CSV 导入失败