2012-05-15 42 views
0

我們有這種模式具有外鍵的用戶:沒有ForeignKey的異常Django的

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,我們試圖篩選已註冊的顯示軍醫頁面上以用戶的用戶認爲只屬於所謂的「工作人員」組:

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' 

回答

0

您必須指定你有外鍵的模式:

class StaffMed(admin.StackedInline): 
    model = MedicAdmin 

然後你需要過濾這樣的:

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