- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请将此作为考虑问题。也许有人会使用其中之一
解决办法如下。
我有几个模型,其中包含 ForeignKey(User)
field 。
我的基于类的创建 View 源自通用 CreateView
.
添加新对象时,有两个选项可以保存关联的用户:
form_valid
在 View 中保存表单方法;user_id
(以及此处未提及的其他不应公开的数据)class CreateOfferView(CreateView):
model = Offer
form_class = SomeModelFormWithUserFieldExcluded
def form_valid(self, form):
instance = form.save(commit=False)
instance.user = self.request.user
instance.save()
OwnFormMixin
class OwnFormMixin(object):
def get_form(self, form_class):
form = super(OwnFormMixin, self).get_form(form_class)
form.fields['user'].widget = forms.HiddenInput()
def get_initial(self):
initial = super(OwnFormMixin, self).get_initial()
initial['user'] = self.request.user.pk
#I could also do this in get_form() with form.fields['user'].initial
class CreateOfferView(OwnFormMixin, CreateView):
model = Offer
form_class = SomeModelFormWithAllFields
CreateXXXView
使用
OwnFormMixin
..
最佳答案
除非你允许用户修改 ForeignKeyField
,没有理由将它包含在表单中 - 我会采用您使用 exclude
的第一个解决方案。将用户字段排除在您的 ModelForm
之外,并从 request.user
设置用户.事实上,Django documentation now has an example along these exact lines .
您的优势在于不必防范对 user_id
的操纵。参数,不会暴露您的内部用户 ID,也不必担心不同的创建与更新情况。一个小小的缺点是,如果您需要更改对象的关联 User
的能力。你需要重新开始。
关于Django 用户 HiddenInput 与使用基于类的 View 直接保存在 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10821451/
我在以下代码中收到错误模块'django.forms.forms'没有属性'HiddenInput': from django.forms import ModelForm, forms from c
假设我们有一个博客博客文章的详细信息页面,并且我们接受该页面上的评论,现在我们需要知道我们正在评论哪个帖子,以便我们可以为该帖子创建评论对象。 如何设置 {{ post.id }}在 HiddenIn
我正在尝试保存一个隐藏值以供 jQuery 使用。 jsf代码: ... ... 当查看渲染的页面源时,我看不到 的任何证据。 . 仅供引用,我想做的是访问此使用以下 jQ
我有从模型生成的表单 class UserProfile(models.Model): company = models.ForeignKey(Company) user = mode
我写了代码,但我不知道如何用Django模板设置隐藏标签的'name'和'value'。我读了Django's Widgets Docs , 但我找不到路。 (Pdb) print(errors) f
我有一个 View ,我需要检测一个属性是否用隐藏输入装饰。 我的属性(property)被定义为: [HiddenInput(DisplayValue = false)] public string
我在 dll 中有一个非常简单的 View 模型,我想将其与主 Web mvc 项目分开。 我正在使用元数据属性装饰模型,这将有助于 ui 显示正确的表示(DisplayName、UIHint、Dat
我有一些看起来像这样的 Django 表单代码: class GalleryAdminForm(forms.ModelForm): auto_id=False order = form
请将此作为考虑问题。也许有人会使用其中之一 解决办法如下。 我有几个模型,其中包含 ForeignKey(User) field 。 我的基于类的创建 View 源自通用 CreateView . 添
HiddenFor 描述是:为指定表达式表示的对象中的每个属性返回 HTML 隐藏输入元素。 我读到,它对于模型/ View 模型中的字段非常有用,您需要在页面上保留这些字段,并在进行另一个调用时传回
我正在制作一个学习 Django 的小项目,但我在尝试使用 ModelForm 中的隐藏字段时遇到了一些问题。 有类: class Post(models.Model): title
什么是 Exaclty ScaffoldColumn(false) 和 HiddenInput(DisplayValue = false)? 这两者之间的主要区别是什么?哪一个最好用? 谢谢!!! 最
标题已经说明了一切。 似乎有两种方法可以使用属性将字段标记为“请不要在 UI 上显示”。一个位于 DataAnnotations 命名空间中,我认为这是它所属的位置,另一个位于 MVC 特定的命名空间
我有以下模型: public class Product { [HiddenInput(DisplayValue = false)] public int ProductID { ge
我是一名优秀的程序员,十分优秀!