首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python :在没有所有字段显示的情况下向CBV视图中添加约束字段值

Python :在没有所有字段显示的情况下向CBV视图中添加约束字段值
EN

Stack Overflow用户
提问于 2020-11-14 19:26:31
回答 1查看 19关注 0票数 0

我使用一个ClassBasedView,并要求Django移除自动生成的表单中的一些字段(释放: owner / owner_card_nb ):

代码语言:javascript
运行
复制
class BristolCreateView(LoginRequiredMixin, CreateView):
    model       = Bristol
    fields      = [ "catalogue"            ,
                    "recommanded_age"       ,
                    "title"                 ,
                    "url"                   ,
                    "path_illustration"     ,
                    "description"           ] #letting out :  owner / owner_card_nb 

当表单发送到服务器时,我必须计算字段owner_car_nb。

代码语言:javascript
运行
复制
owner_card_nb= Bristol.objects.filter(owner=self.request.user)

如何将这些数据推入已显示在html中的表单中,而没有所有者,也没有owner_car_nb值?

我尝试了几种方法:

  1. 向CBV添加get_initial:

类BristolCreateView(LoginRequiredMixin,CreateView):def get_initial(self):返回{'owner':self.request.user.id,'owner_card_nb':1}

但是网页仍然失败:

代码语言:javascript
运行
复制
IntegrityError at /bristol/create
NOT NULL constraint failed: bristol_bristol.owner_id

使用

  1. 的form_valid:

def Bristol.objects.filter(owner=self.request.user) form_valid(self,form):form.instance.created_by = self.request.user form.instance.owner_card_nb=返回超级(BristolCreateView,self).form_valid(form) )

但是网页仍然失败:

代码语言:javascript
运行
复制
IntegrityError at /bristol/create
NOT NULL constraint failed: bristol_bristol.owner_id

我做错什么了?如何在CBV表单中为未显示的字段设置值?

EN

回答 1

Stack Overflow用户

发布于 2020-11-14 19:40:06

错误在form_valid中:我把created_by而不是owner.

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

https://stackoverflow.com/questions/64837790

复制
相关文章

相似问题

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