我有以下问题。
我有 3 个模型:
class Deal(models.Model):
name = models.CharField(max_length=80)
class Site(models.Model):
name = models.CharField(max_length=80)
deal = models.ForeignKey(Deal)
class Picture(models.Model):
title = models.CharField(max_length=80)
deal = models.ForeignKey(Deal)
site = models.ForeignKey(Site)
我想使用站点和图片内联管理模型制作交易管理员:
class SiteInline(admin.StackedInline):
model = Site
extra = 1
class PictureInline(admin.StackedInline):
model = Picture
extra = 1
class DealAdmin(admin.ModelAdmin):
inlines = [
SiteInline,
PictureInline,
]
我想要做的是当我选择图片管理中的站点时,它仅显示我属于我正在查看的当前交易的网站(如果我正在更新 - 不是创建新的)。
我希望它在管理员中工作,我花了很多时间搜索网络但找不到任何有用的东西,请帮助!
我试图这样做,但我不知道如何访问父模型实例以获取交易 ID:
def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
if db_field.name == 'site':
kwargs['queryset'] = Site.objects.filter(deal__id=1)
return super(PictureInline, self).formfield_for_foreignkey(db_field, request=None, **kwargs)