2010-07-18 5 views
1

내 장고 응용 프로그램에서 나는 admin 사이트를 가지고 있으며 사용자를 이벤트 참석에 계속 추가 할 수 있도록 사용자 정의하려고합니다. 내 모델은 다음과 같이 : 내가 event_attendance 객체의 이야기에 구성원을 계속 추가 할 수 있도록django에서 관리 사이트 사용자 정의

class Talk(models.Model): 
title = models.CharField(max_length=200, primary_key=True) 
speaker = models.CharField(max_length=200) 
date_of_talk = models.DateField('date_of_talk') 
def __unicode__(self): 
     return self.title 

class Member(models.Model): 
name = models.CharField(max_length=200) 
telephone_number = models.CharField(max_length=200) 
email_address = models.CharField(max_length=200) 
membership_type = models.CharField(max_length=1, choices=MEMBERSHIP_TYPES) 
membership_number = models.CharField(max_length=200, primary_key=True) 
def __unicode__(self): 
     return self.name 

class Event_Attendance(models.Model): 
talk = models.ForeignKey('Talk') 
membersAttended = models.ForeignKey('Member') 

내가 관리 사이트를 구성 할 수 있어야합니다. 나는 많은 회원들과 한 번 이야기를 나눈다. 내가 어떻게 할까? 또한 member_attendance 객체의 최대 멤버 수를 멤버 수와 같게하려고합니다. 사전에
감사합니다,

답변

1

당신은 인수 "를 통해"이용 회원에 ManyToManyField이 필요합니다

class Member(models.Model): 
    [...] 
    attending = models.ManyToManyField(Talk, through=Event_Attendance) 

는 회원의 최대 수 이상을 허용하지 돌봐 이벤트에 참석, 그와

class Event_Attendance(models.Model): 
    [...] 
    class Meta: 
     unique_together = ('talk', 'membersAttended') 

당신이 각 멤버는 이야기를 한 번에 참석할 수 있는지 확인 할 수 있으며, : 당신은 너무처럼 Event_Attendance에 고유성 제약 조건을 적용 할 수 있습니다 당신은 당신이 찾고있는 데이터에 대한 액세스를 얻기 위해 당신의 모델을 통해 행복하게 질의 할 수 있습니다.

관련 문제