Django模型中多对多字段的过滤器选择

瓦格

我想过滤modelform中的多对多字段。

class IdealBehaviour(models.Model):
    cbs_role = models.ManyToManyField(CbsRole, null=True, blank=True)
    cbs = models.ForeignKey('cbs.CBS', null=True, blank=True)
    ideal_behaviour = models.CharField(max_length=500, null=True, blank=True)
    Description = models.CharField(max_length=1000, null=True, blank=True)
    created_time = models.DateTimeField(auto_now_add = True,null=True, blank=True)

class StandardWork(models.Model):
    cbs_and_role = models.ManyToManyField('userdata.CbsRole', null=True, blank=True)
    standard_work_number = models.BigIntegerField(null=True, blank=True)
    system_name= models.CharField(max_length=500, null=True, blank=True)
    system_description=models.TextField(null=True, blank=True)
    ideal_behaviour = models.ManyToManyField ('userdata.IdealBehaviour', null=True, blank=True)
    publish = models.BooleanField(default=False)
    created_time = models.DateTimeField(auto_now_add = True,null=True, blank=True)

class TodoListForm(ModelForm):  # used in manage view
    class Meta:
        model = StandardWork
        exclude = ('publish', 'cbs_and_role', 'standard_work_number')
        widgets = {
              'system_description': forms.Textarea(attrs={'rows':3}),
            } 

我想显示查询的Ideal_behaviour选择

cbsobject = CBS.objects.get(id=dat)
idealbehaviour = IdealBehaviour.objects.filter(cbs=cbsobject)

我只想在TodoListForm中选择Ideal_behaviour。

我如何查询仅以模型形式显示与该穿孔机cb相关联的理想行为?

我有解决方案

def __init__(self, *args, **kwargs):
        super(PollForm, self).__init__(*args, **kwargs)
        if self.instance:
            print "printing in form"
            print self.instance.id
            self.fields['ideal_behaviour'].queryset = IdealBehaviour.objects.filter(cbs__exact=self.instance.id)

但我不知道如何获得CBS的ID。self.instance.id为其提供标准工作ID。我想要CBS的ID。即cbsobject我想要形式作为实例。之后,它的工作正常。

瓦格

得到了解决方案。我不知道它的可行性与否,但是我只将表单放在views文件中,这样我才能获得cbsobject的实例。

class PollForm(forms.ModelForm): # used in manage view
                    class Meta:
                        model = StandardWork
                        exclude = ('cbs_and_role','publish', 'standard_work_number')
                        widgets = {
                          'system_description': forms.Textarea(attrs={'rows':3}),
                        } 
                    def __init__(self, *args, **kwargs):
                        super(PollForm, self).__init__(*args, **kwargs)
                        if self.instance:
                            print "printing in form"
                            print self.instance.id
                            self.fields['ideal_behaviour'].queryset = IdealBehaviour.objects.filter(cbs__exact=cbsobject)

如果有更好的解决方案,请告诉我。并且请指导我这个方法用的术语不好。谢谢你。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django中的动态过滤器选择字段

来自分类Dev

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

来自分类Dev

Django:过滤多对多字段

来自分类Dev

Django模型过滤器

来自分类Dev

字典列表中的Django模型过滤器

来自分类Dev

基于多对多过滤器选择

来自分类Dev

基于Django中字段的动态范围过滤器

来自分类Dev

Django模型复杂过滤器

来自分类Dev

Django过滤器ManyToMany字段

来自分类Dev

Django Deliciouspie过滤器布尔字段

来自分类Dev

Django过滤器外键字段

来自分类Dev

Django tastypie过滤器布尔字段

来自分类Dev

如何在模型或过滤器中存储多菌落域的计数并聚合多菌落域

来自分类Dev

POST中的Django多字段过滤

来自分类Dev

Django模型中的多字段分配

来自分类Dev

模板中的Django多对多字段并通过

来自分类Dev

datagrid中的多列过滤器

来自分类Dev

无法将关键字“模型”解析为字段。Django过滤器

来自分类Dev

django模型过滤器的一个字段

来自分类Dev

在 Django 模型表单中过滤用户输入过滤器值

来自分类Dev

Django Admin-基于正在编辑的当前对象的过滤器选择字段

来自分类Dev

Django多对多过滤器按列表中的ALL进行过滤

来自分类Dev

如何获取Django模型的多对多字段总数?

来自分类Dev

Vue JS在输入字段中的v模型上应用过滤器

来自分类Dev

无法从过滤器查询集结果访问模型字段

来自分类Dev

Django多对多查询集过滤器

来自分类Dev

选择字段的翻译标签在Sonata Admin Datagrid过滤器中不起作用

来自分类Dev

按下时填充列表中的 jquery 过滤器字段的日期选择器

来自分类Dev

删除 Woocommerce 管理订单列表中的下拉选择字段过滤器

Related 相关文章

热门标签

归档