【问题标题】:Django admin filter foreign keyDjango 管理员过滤外键
【发布时间】:2013-12-27 10:21:01
【问题描述】:

我有 4 节课:

class Material(models.Model):
    name = models.CharField(_('name'), max_length=50)


class Property(models.Model):
    name = models.CharField(_('name'), max_length=50)

class Physic(models.Model):
    name = models.ForeignKey(Property, verbose_name=_('name'), null=True, blank=True,)
    lapropriete = models.CharField(_('property'), max_length=100) 


class UniteProperty2(models.Model):
    name = models.ForeignKey(Material, verbose_name=_('name'))                                   
    nature_unit = models.ForeignKey(Property, verbose_name=_('category'))                    
    choix = models.ForeignKey(Physic, verbose_name=_('properties'), null=True, blank=True, related_name='choix')    

我想要做的是,当我在 UniteProperty2 中选择 nature_unit 时,它只显示属性(在管理界面中) 属于当前类别的' (例如:如果我选择机械,我将在下拉列表 'choix' 中显示 'Hardness vickers'、'young Modulus'、Maximum stress')

在 admin.py 文件中,我有

class UniteProperty2InlineForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(UniteProperty2InlineForm, self).__init__(*args, **kwargs)
        self.fields['choix'].queryset = Physic.objects.filter(
            name=self.instance.name)


class UniteProperty2Inline(admin.TabularInline):
    model = UniteProperty2
    form = UniteProperty2InlineForm




class MaterialAdmin(admin.ModelAdmin):

   inlines = (UniteProperty2Inline, ..)

但它不起作用...我有错误“未提供异常”异常类型:DoesNotExist

问题是:name__name=self.instance.name

【问题讨论】:

  • 我找到了解决办法
  • 看起来不错..你应该用github link写成答案

标签: object filter django-admin foreign-keys


【解决方案1】:

self.instance.name - 在你的形式中是指 UniteProperty2 名称 - 这是一个 Material obj

所以试试这个

self.fields['choix'].queryset = Physic.objects.filter(
            name=self.instance.choix )

或者对于所有选项: self.fields['choix'].queryset = Physic.objects.filter( 名称=self.instance.choix)

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 2016-09-23
    • 2015-11-16
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 2011-11-13
    相关资源
    最近更新 更多