Django 过滤 ModelChoiceField 的查询集

2023-12-21

我一直在使用名为 ModelChoiceField 的表单字段并通过所有对象进行查询,但这并不完全是我打算使用它的目的。

 class PictureForm(forms.ModelForm):
    Whiteboard = forms.ModelChoiceField(queryset=Whiteboard.objects.all())

我一直在尝试使用 ModelChoiceField 查询属于特定用户的所有 WhiteBoard 对象

Whiteboard = forms.ModelChoiceField(queryset=Whiteboard.objects.filter(user=request.user))

但我发现请求没有传递到 ModelForm 。我一直在寻找各种解决方案,一个解决方案是覆盖表单的init()

这可能是与我的问题相关的最接近的问题如何在 Django 的 ModelForm 中使用请求 https://stackoverflow.com/questions/8841502/how-to-use-the-request-in-a-modelform-in-django

这是他的解决方案。如果他的解决方案是覆盖视图中的查询集。他如何在 forms.py 中创建没有查询集的 ModelChoiceField

就我而言,我想按用户过滤所有白板。我怎样才能做到呢?

我的模块的一部分

class Whiteboard(models.Model):

    Category =models.CharField(max_length=30,choices=CATEGORY)
    user = models.ForeignKey(User)
    name = models.CharField(max_length=100)
    picture = models.OneToOneField('Picture',related_name='picture',blank=True,null=True)
    def __unicode__(self):
        return self.name

class Picture(models.Model):
    user = models.ForeignKey(User)
    Whiteboard = models.ForeignKey(Whiteboard,blank=False,null=False,related_name='board')
    image = models.FileField(upload_to="images/",blank=True)
    description = models.TextField()
    is_primary = models.BooleanField(default=False)

    def __unicode__(self):
        return self.description

我的观点.py

def PictureCreator(request):
if not request.user.is_authenticated():
    return HttpResponseRedirect(reverse('world:LoginRequest'))

if request.method == "POST":
    form = PictureForm(request.POST , request.FILES)
    if form.is_valid():
        picture = Picture(user=request.user)
        image = request.FILES.get('image')
        if image:
                            picture.image = form.cleaned_data['image']
                    description = form.cleaned_data['description']
        if description:
                            picture.description = form.cleaned_data['description']

        if board:
                            picture.board = form.cleaned_data['board']
        picture.save()
        board = Whiteboard.objects.get(Whiteboard=picture.board)
        the_id = board.id
    return HttpResponseRedirect(reverse('world:Boat', kwargs={'animal_id': the_id }))   

return render(request,'picture.html',{'form':PictureForm()})

图片.html

<form method="POST" enctype="multipart/form-data">
    {% csrf_token %}
{{ form.as_p }}
<input type = "submit" value= "Add Picture" />
 </form>

在类定义期间根本不要设置过滤器。您将在您的视图中覆盖它。

form = PictureForm()
form.fields['whiteboard'].queryset = Whiteboard.objects.filter(user=request.user)

class PictureForm(ModelForm):
   whiteboard = forms.ModelChoiceField(queryset=Whiteboard.objects.none(),)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 过滤 ModelChoiceField 的查询集 的相关文章

随机推荐

  • AngularFire2无限滚动

    我正在尝试使用 Ionic2 和 Firebase 实现无限滚动 我使用 AngularFire2 我想做的是将新项目添加到获取的列表中 而不是重新加载整个列表 let query Observable
  • 在该方法的重写中调用该方法的基本抽象方法

    如果我有以下情况 e g public abstract class ClassA protected abstract void ValidateTransaction public abstract class ClassB Class
  • 有没有办法返回 org.springframework.data.jpa.domain.Specification 的父实体规范?

    假设我与 Person 实体有双向 1 1 关联 Entity public class Person OneToOne optional false JoinColumn name contact id private Contact c
  • 为什么我们应该在 subprocess.Popen 中使用 stdout=PIPE ?

    from subprocess import PIPE Popen p Popen ls l shell True stderr PIPE stdout PIPE out err p communicate print out err 在上
  • golang中反引号(``)和双引号("")有什么区别?

    golang中反引号 和双引号 有什么区别 在引号中 需要转义换行符 制表符和其他不需要在反引号中转义的字符 如果在反引号字符串中放置换行符 它将被解释为 n 性格 见https golang org ref spec String lit
  • 当iPhone进入横向模式时执行方法

    当 iPhone 进入横向或纵向模式时 是否有一个代表会被呼叫 当 iPhone 旋转时 我需要更改样式并将对象放置在不同的位置 我必须使用加速度计来完成此操作吗 此外 如果存在这样的委托 我是否必须在界面生成器中创建连接 我是目标c的新手
  • 如何在 HttpClient HttpRequestMessage 中设置 cookie

    我正在尝试使用 web apiHttpClient向需要以标识帐户的 HTTP cookie 形式登录的端点进行发布 这只是 ifdef ed 出发行版 如何添加 cookie 到HttpRequestMessage 以下是为请求设置自定义
  • 通过 GoogleMap 滑动抽屉

    首先 我知道 SlidingDrawer 已被弃用 但我还没有找到任何替代方案 所以我仍然使用它 3 如果有人知道它的替代方案 请分享 所以我的 Activity 中有一个 GoogleMap 实际上是一个片段 但这并不重要 并且在同一屏幕
  • 用于将整个存档解压到 java 目录中的实用程序

    我想在我的程序中做这样的事情 File zipFile File destDir ImaginaryZipUtility unzipAllTo zipFile destdir 我不可能是第一个通过程序执行此操作的人 我在哪里可以找到像上面这
  • 错误:无法在会话中找到请求令牌

    我在主护照存储库上发现了一些问题 但是 我认为这主要与这个特定策略有关 因为我能够使用 Passport google oauth 策略成功进行身份验证 Error failed to find request token in sessi
  • R中的数字和符号相乘

    我有两个具有相同尺寸的数据表 一个填充数字 另一个填充可以是正数或负数的符号 例如 A data table colOne c 1 3 4 colTwo c 1 0 1 B data table colOne c a b c colTwo
  • 使 TeamCity 版本与 .NET 程序集版本匹配

    现在我们的程序集的版本号是 2 0 831 0 据我了解 这是主要版本 次要版本 日期和内部版本号 如果我进行更改并在同一天再次构建 则会是 2 0 831 1 2 0 831 2 等 我的 TeamCity 内部版本号格式仅为 2 0 其
  • PhpStorm 定义可折叠代码区域(Visual Studio 风格区域)可能吗?

    在 Visual Studio 中您可以使用 region and endregion包装开发人员定义的代码块 我很想在 PhpStorm 中看到此功能 它是组织大型源文件 例如大量接口实现 的理想方式 是否有可能使 PhpStorm 表现
  • 确定哪个 Tkinter 小部件位于顶部(或可见)

    我想确定哪个小部件 在本例中为框架 位于顶部 或无论如何可见 from Tkinter import spam1 0 spam2 1000 def busywork global spam1 global spam2 if frame1 i
  • 在 Numba 中计算 numpy 数组中非零值的数量

    很简单 我正在尝试计算用 Numba 编译的 NumPy jit 中的数组中非零值的数量 njit 我尝试过的以下操作是 Numba 不允许的 a a 0 size np count nonzero a len a a 0 len a le
  • 在 ReadTheDocs 上使用自定义主题

    我尝试使用从 Sphinx 的内置 ReadTheDocs 主题继承的自定义主题 当我在本地计算机上使用它时 我有很好的设计 但是当我阅读文档版本 从 gi thub 导入 时 没有 CSS 我错过了什么 使用自定义主题的分支的存储库 ht
  • Django Facebook Connect 应用推荐

    我想为我的 Django 网站实现 Facebook 连接登录 并且我已经检查了现有的应用程序 到目前为止 我已经找到了Django Socialauth http github com uswaretech Django Socialau
  • Julia 中有外部映射函数吗?

    我正在尝试构建四个向量 模型中的参数 的所有可能组合 这将为我提供一个大的 nx4 矩阵 然后我可以对每组 行 参数运行模拟 在 R 中我将通过使用来实现这一点expand grid在 Mathematica 风格中 我可以使用类似外积的东
  • Clojure 源代码中的父 eval(阅读器)函数?

    In 彼得 诺维格 http norvig com 史诗巨著人工智能编程范式 http norvig com paip html在第 7 章中 他描述了一个函数interp这实际上是一个简单的eval解释 REPL 中的基本方案时使用的函数
  • Django 过滤 ModelChoiceField 的查询集

    我一直在使用名为 ModelChoiceField 的表单字段并通过所有对象进行查询 但这并不完全是我打算使用它的目的 class PictureForm forms ModelForm Whiteboard forms ModelChoi