Django models 没有外键例外Django

Django models 没有外键例外Django,django-models,django-admin,django-admin-filters,Django Models,Django Admin,Django Admin Filters,我们有一个外键为用户的模型: class Medic(models.Model): user = models.ForeignKey(User) first_name = models.CharField(max_length=100, blank=True) middle_name = models.CharField(max_length=100, blank=True) last_name = models.CharField(max_length=100,

我们有一个外键为用户的模型:

class Medic(models.Model):
    user = models.ForeignKey(User)
    first_name = models.CharField(max_length=100, blank=True)
    middle_name = models.CharField(max_length=100, blank=True)
    last_name = models.CharField(max_length=100, blank=True)
在admin.py中,我们尝试将已注册的用户筛选为仅属于名为“staff”的组的用户,这些用户显示在Medic页面上:

from django.contrib import admin
from django.contrib.auth.models import User
from profiles.models import Medic

class StaffMed(admin.StackedInline):
    model = User
    def queryset(self, request):
        qs = super(StaffMed, self).queryset(request).filter(group__name='staff')
        return qs

class MedicAdmin(admin.ModelAdmin):
    inlines = [StaffMed]
    #model = Medic

admin.site.register(Medic, MedicAdmin)
然后我们得到一个例外:

class 'django.contrib.auth.models.User' has no foreignKey to class 'staff.models.Medic'

必须指定外键所在的模型:

class StaffMed(admin.StackedInline):
    model = MedicAdmin
然后你需要像这样过滤:

    def queryset(self, request):
         qs = super(StaffMed, self).queryset(request).filter(user.group__name='staff')
         return qs