如何仅使用当前用户的作者(fk)修改我的通用 CreateView 中的作者选择字段?

史提夫

这是我的代码,我已经阅读了文档,看来这种方法是正确的方法,我没有收到任何错误,但没有看到任何结果。有人可以帮助我解决我做错了什么吗?

class BookCreate(LoginRequiredMixin, CreateView):
     model = Book
     fields = ['title', 'isbn', 'year', 'author', 'publisher']


    def form_valid(self, form):
        form.instance.owner = self.request.user
        return super(BookCreate, self).form_valid(form)

    def form_valid(self, form):
        b = Book.objects.all
        form.instance.author = ModelChoiceField(queryset=b.author_set.filter(owner=self.request.user))
        return super(BookCreate, self).form_valid(form)
阿拉斯代尔

简单地author从字段列表中排除,然后在form_valid方法中设置它要容易得多

class BookCreate(LoginRequiredMixin, CreateView):
    model = Book
    fields = ['title', 'isbn', 'year', 'publisher']

    def form_valid(self, form):
        form.instance.owner = self.request.user
        return super(BookCreate, self).form_valid(form)

如果你这样做,确保你删除了你的第二种form_valid方法,它取代了form_valid上面的正确方法。

如果您必须author将单个选项作为字段包含,则代码要复杂得多。您需要一个带有__init__方法的自定义表单,该方法接受user并设置该auth字段的查询集。

然后您需要修改您的视图以使用您的自定义表单,并覆盖get_form_kwargs以包含self.request.user.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Django中,如何让CreateView仅显示当前用户创建的对象?

来自分类Dev

限制CreateView中的表单字段不将当前用户显示为模板中的选择

来自分类Dev

Django通用CreateView和UpdateView中的Modelformset

来自分类Dev

在Alchemy API演示中未选择正确的作者字段

来自分类Dev

如何避免在ModelForm和CreateView类中重复字段列表?

来自分类Dev

如何在Django的CreateView中对字段进行排序?

来自分类Dev

如何避免在ModelForm和CreateView类中重复字段列表?

来自分类Dev

如何在CreateView中获取创建的对象

来自分类Dev

将当前用户传递给Django中的CreateView的初始用户

来自分类Dev

选择字段中的Django CreateView过滤器外键

来自分类Dev

通用模型的Django Createview

来自分类Dev

CreateView中的DatepickerWidget

来自分类Dev

CreateView中的GET参数

来自分类Dev

在通用 CreateView 中获取和显示请求参数的最佳方法

来自分类Dev

使用主键的Django createview

来自分类Dev

在基于 Django 类的通用视图 CreateView 中设置表单字段

来自分类Dev

Django:如何在CreateView中自动填充ForeignKey

来自分类Dev

如何在CreateView中动态设置ForeignKey的初始值?

来自分类Dev

在Django CreateView中创建对象后,如何添加指令?

来自分类Dev

使用get_queryset在CreateView中过滤模型

来自分类Dev

图像不使用模板 django 中的 createview 上传

来自分类Dev

在CreateView中设置Django ModelForm的字段值

来自分类Dev

根据当前登录用户在 Django CreateView 中显示不同的默认值?

来自分类Dev

在Django CreateView中,如何添加字段并将该字段作为上下文发送到模板?

来自分类Dev

如何将 CreateView 中的表单(与通用内容类型连接以在 detailview 中建模)进入 DetailView?

来自分类Dev

在django vanilla CreateView上设置当前用户

来自分类Dev

如何修复“CreateView 缺少 QuerySet”

来自分类Dev

Django Generic CreateView-如何填充字段但不显示它们

来自分类Dev

Django如何在单个modelForm中排除字段,仅用于updateview而不是createview?

Related 相关文章

  1. 1

    在Django中,如何让CreateView仅显示当前用户创建的对象?

  2. 2

    限制CreateView中的表单字段不将当前用户显示为模板中的选择

  3. 3

    Django通用CreateView和UpdateView中的Modelformset

  4. 4

    在Alchemy API演示中未选择正确的作者字段

  5. 5

    如何避免在ModelForm和CreateView类中重复字段列表?

  6. 6

    如何在Django的CreateView中对字段进行排序?

  7. 7

    如何避免在ModelForm和CreateView类中重复字段列表?

  8. 8

    如何在CreateView中获取创建的对象

  9. 9

    将当前用户传递给Django中的CreateView的初始用户

  10. 10

    选择字段中的Django CreateView过滤器外键

  11. 11

    通用模型的Django Createview

  12. 12

    CreateView中的DatepickerWidget

  13. 13

    CreateView中的GET参数

  14. 14

    在通用 CreateView 中获取和显示请求参数的最佳方法

  15. 15

    使用主键的Django createview

  16. 16

    在基于 Django 类的通用视图 CreateView 中设置表单字段

  17. 17

    Django:如何在CreateView中自动填充ForeignKey

  18. 18

    如何在CreateView中动态设置ForeignKey的初始值?

  19. 19

    在Django CreateView中创建对象后,如何添加指令?

  20. 20

    使用get_queryset在CreateView中过滤模型

  21. 21

    图像不使用模板 django 中的 createview 上传

  22. 22

    在CreateView中设置Django ModelForm的字段值

  23. 23

    根据当前登录用户在 Django CreateView 中显示不同的默认值?

  24. 24

    在Django CreateView中,如何添加字段并将该字段作为上下文发送到模板?

  25. 25

    如何将 CreateView 中的表单(与通用内容类型连接以在 detailview 中建模)进入 DetailView?

  26. 26

    在django vanilla CreateView上设置当前用户

  27. 27

    如何修复“CreateView 缺少 QuerySet”

  28. 28

    Django Generic CreateView-如何填充字段但不显示它们

  29. 29

    Django如何在单个modelForm中排除字段,仅用于updateview而不是createview?

热门标签

归档