2012-05-15 1 views
0

Nous avons ce modèle qui a une clé étrangère à l'utilisateur:Aucune exception 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) 

tout en admin.py, nous avons essayé de filtrer les utilisateurs qui sont déjà inscrits affichés à la page Medic pour être utilisateur que seulement font partie du groupe appelé 'personnel':

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) 

et nous obtenons cette exception:

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

Répondre

0

Vous devez spécifier le modèle que vous avez la clé étrangère dans:

class StaffMed(admin.StackedInline): 
    model = MedicAdmin 

Ensuite, vous devez filtrer comme ceci:

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