我有用户模型:
class PublisherProfile(models.Model):
publisher_id = models.AutoField(primary_key=True)
user_profile = models.OneToOneField(Profile, on_delete=models.SET_NULL, null=True, verbose_name=_("user profile"))
在管理员中我注册了这个模型:
@admin.register(PublisherProfile)
class PublisherProfileAdmin(admin.ModelAdmin):
list_display = (
"publisher_id",
"user_profile",
)
在另一个模型中我有:
class PublisherOffer(models.Model):
offer_owner = models.ForeignKey('user.PublisherProfile', on_delete=models.CASCADE, verbose_name=_("offer owner"), )
title = models.CharField(_('Offer title'), help_text=_('Title of the offer.'), max_length=250, blank=False,
null=False)
如何将所有 PublisherOffer 注入 PublisherProfileAdmin?
答案 0 :(得分:0)
您可以通过在 PublisherProfileAdmin 中再添加一个字段来将所有 PublisherOffer 注入到 PublisherProfileAdmin:
@admin.register(PublisherProfile)
class PublisherProfileAdmin(admin.ModelAdmin):
list_display = (
"publisher_id",
"user_profile",
"offers_title"
)
def offers_title(self,obj):
return list(PublisherOffer.objects.filter(offer_owner=obj).values_list('title',flat=True))
@admin.register(PublisherOffer)
class PublisherOfferAdmin(admin.ModelAdmin):
fields=("offer_owner","title")
要在 PublisherProfile 预览中获取 PublisherOffer:
在 admin.py 文件中:
@admin.register(PublisherProfile)
class PublisherProfileAdmin(admin.ModelAdmin):
list_display = (
"publisher_id",
"user_profile",
"offers_title"
)
readonly_fields=('offers_title',)
在model.py文件中:
class PublisherProfile(models.Model):
publisher_id = models.AutoField(primary_key=True)
user_profile = models.OneToOneField(Volunteer, on_delete=models.SET_NULL, null=True, verbose_name="user profile")
@property
def offers_title(self):
return list(PublisherOffer.objects.filter(offer_owner=self.publisher_id).values_list('title',flat=True))