【发布时间】: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