我有一个名为A的模型,其中包含以下字段
class A(models.Model):
f_name = models.CharField(max_length=30, null=True, blank=True)
l_name = models.CharField(max_length=30, null=True, blank=True)
email = models.EmailField(unique=False)
phone = models.CharField(max_length=30, null=True, blank=True)
现在我正在从模型A
创建另一个模型B.class B(A):
class Meta:
proxy = True
B的管理类是
class BAdmin(admin.ModelAdmin):
list_display = ('email','first_name', 'last_name', 'phone')
我想在管理网站中仅显示模型B中的不同电子邮件?
注意:我不想打扰模型A,但我希望在BAdmin中获得唯一的电子邮件记录
例如模型A中的记录
我想在模型B admin中显示唯一记录
我尝试通过
在BAdmin中编写querysetdef queryset(self, request):
qs = super(BAdmin, self).queryset(request)
qs = qs.distinct('email')
return qs
当我在上面写的时候,我得到DISTINCT ON字段不支持这个数据库后端(MySQL)错误是否有另一种方法来显示模型B中的唯一记录?
答案 0 :(得分:1)
您可以在queryset()
课程中使用ModelAdmin
方法来过滤您想要的内容:
class BAdmin(admin.ModelAdmin):
list_display = ('email', 'first_name', 'last_name', 'phone')
def queryset(self, request):
qs = super(BAdmin, self).queryset(request)
qs = qs.distinct('email')
return qs