다음 모델 클래스가 있습니다.UserProfile에서 특정 사용자를 얻는 방법
내 "사용자"앱의 사용자 프로필 모델은 다음과 같습니다. Django (django.contrib.auth) User app 용 ProfileModel입니다.
from django.db import models
from django.contrib.auth.models import User
from apps.programs.models import Program
class UserProfile(models.Model):
user = models.ForeignKey(User, primary_key=True)
USER_TYPES = (
('STUD', 'Students'),
('INST', 'Instructors'),
('ADV', 'Advisers'),
('BRAN', 'Branch Workers')
)
status = models.CharField(max_length=4, choices=USER_TYPES)
program = models.ForeignKey(Program)
phone_number = models.CharField(max_length=25, blank=True)
def __unicode__(self):
return u'%s %s %s' % (self.user, self.status, self.program)
여기 내 "코스"앱의 내 코스 모델입니다.
from django.db import models
from apps.programs.models import Program
from apps.users.models import UserProfile
class Course(models.Model):
code = models.CharField(max_length=6, primary_key=True)
id = models.PositiveIntegerField()
name = models.CharField(max_length=60)
course_language = models.CharField(max_length=3)
credit = models.DecimalField(max_digits=10, decimal_places=1)
schedule = models.CharField(max_length=30, blank=True)
program = models.ForeignKey(Program)
SEMESTER = (
('f', 'Fall Semester'),
('s', 'Spring Semester'),
('b', 'Both Semesters'))
semester = models.CharField(max_length=1, choices=SEMESTER, blank=True)
description = models.TextField(blank=True)
def __unicode__(self):
return self.name
그리고 여기에 내가 어떤 강사에 의해 납이 함유 된 일부 과목을 저장하는거야 내 "과정"앱 내 InstructorCourse 모델입니다. "코스"필드는 코스 모델 및 "강사"와 UserProfile 모델로 연결됩니다. 여기에 문제가 있습니다.
class InstructorCourse(models.Model):
course = models.ForeignKey(Course, name='course_name')
instructor = models.ForeignKey(UserProfile, name='instructor_username')
def __unicode__(self):
return u"%s %s" % (self.course_name, self.instructor_name)
문제는 내가 관리자에 강사를 추가하려고하면 강사 필드는 사용자 프로필을 받아 모든 사용자를 얻을 수 있기 때문에, 나는, 시스템의 모든 사용자를 얻을 수 있다는 것입니다. 그러나 그것은 내가 원하는 것이 아닙니다. UserProfile 모델에서 'status'필드의 'INST'값만 가진 사용자가 필요합니다. 누군가가 저를 도울 수 있습니까? InstructorCourse 모델 관리자를 직접 만들어야하나요? 또는 무엇을해야합니까?