2
에 라디오 버튼에 OneToOneField지도 :장고 나는 다음과 같은 한 관리 인터페이스
class A(models.Model):
true_b = models.OneToOneField('B', related_name='is_true')
def save(self, *args, **kwargs):
if self.true_b not in self.b_set.all():
raise ValueError('True_b has to be among those B that refer to this A')
super(A, self).save(*args, **kwargs)
class B(models.Model):
a = models.ForeignKey(A)
...
@property
def is_true(self):
return a.true_b == self
이 B
에 모든 항목을 가지고 true_b
에 대한 관리 인터페이스에서 드롭 다운 목록을 생성하고, 유효성 검사는 선택한 항목이 실제로 A
을 다시 참조하는지 확인합니다.
관리자 인터페이스의 드롭 다운 목록 대신, B
의 각 항목에 대해 선택한 항목을 true_b
값으로 매핑하는 라디오 필드를 가질 수 있습니까?
이렇게하면 항목을 선택하기가 쉽고 (이름을 찾아 드롭 다운 목록에서 선택하는 대신) 사용자는 A
에 속하지 않는 항목을 선택할 수 없습니다.
단지 모델의 전체 양식을 다시 작성하지 않고도 true_b''이 특정 변경하는 것이 가능 관리 클래스에 전달? – abstractpaper
전체 양식을 다시 작성하고 ModelForm을 작성해야하며 init 메소드에서 필드의 위젯을 변경해야합니다. 다음을 확인하십시오 : https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/ – szaman