首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Django类的视图是否自动为模板分配表单值

问基于Django类的视图是否自动为模板分配表单值
EN

Stack Overflow用户
提问于 2019-12-24 13:58:41
回答 1查看 53关注 0票数 0

我用的是Django 2

这是我的view.py包含的内容

代码语言:javascript
复制
class SchoolCreateView(CreateView):
     fields = ("name","principal","location")
     model = models.School

该视图使用的模板(html文件)包含以下代码:

代码语言:javascript
复制
form.instance.pk

而且它是有效的。它返回正确的主键。我不明白为什么。当我没有在我的视图中定义表单对象时,为什么这会起作用?在Django中使用CBV时,是否会自动分配表单的值?

跟进问题。我知道form.instance代表模型中的一行,但是form本身代表什么呢?我目前对forms的理解是,它表示来自views.py的request.POST (基于我从函数视图获得的知识)。但这没有意义,因为客户端还没有发出POST请求,因为他仍然要创建一个数据条目,该数据条目将被POST,但还没有被POST。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-24 14:06:23

主键为主键字段,默认为id。如果您将其他字段定义为主键,则调用pk会返回此信息。

来自文档:

默认情况下,Django为每个模型提供以下字段:

代码语言:javascript
复制
id = models.AutoField(primary_key=True)

这是自动递增的主键。

如果要指定自定义主键,请在其中一个字段上指定primary_key=True。如果Django看到您显式设置了Field.primary_key,它将不会添加自动id列。

每个模型只需要一个字段才能具有primary_key=True (显式声明或自动添加)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59464445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档