No ForeignKey exception Django

636 Views Asked by At

We have this model which has a foreign key to user:

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)

while in admin.py, we tried to filter the Users that are already registered shown on Medic page to be User that only belong to group called 'staff':

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)

and then we get this exception:

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

There are 1 best solutions below

0
On

You have to specify the model which you have the Foreign key in:

class StaffMed(admin.StackedInline):
    model = MedicAdmin

Then you need to filter like this:

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