모델 :ModelForm 인스턴스 - 예기치 않은 동작이
class Person(Models.model):
name = models.CharField(max_length=50)
father = models.ForeignKey('Person', related_name="father", null=True, blank=True)
mother = models.ForeignKey('Person', related_name="mother", null=True, blank=True)
폼 :
이class MyForm(ModelForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
instance = getattr(self, 'instance', None)
if instance and instance.pk:
if instance.name !='':
self.fields['name'].widget.attrs['readonly'] = True
logger.debug("father %s" % instance.father.all())
class Meta:
model = Person
fields = ('name')
내 의도는 인스턴스가 아버지가 있는지 확인하는 것입니다, 그래서 logger.debug
를 추가, 무엇을 볼 수 instance.father.all()
에있다 (나는 그것이 아니면 그렇지 않느냐는 확실하지 않았다).
로그를 살펴보면 instance.father.all()
은 인스턴스 사람의 아버지를 갖지 않지만 아버지는 인스턴스 사람입니다.
명확히하기 위해, Person Person이 저라고 가정 해 봅시다. 나는 아버지를 얻고 싶지만, 나는 아이들을 낳는다. (나는 아버지가있는 사람을 얻는다.)
나는 아주 좋아한다. (나는 나중에 사용할 것이다.) 그러나 나는 여전히 어떻게 아버지를 얻는 지 모른다. 인스턴스 사람 ... 어떤 아이디어? 다음 줄에
정확하게 (빠른 읽기가 틀립니다; D) –
무엇을 빨리 읽었습니까? 나는 단지 궁금하다. 그럼에도 불구하고 우리는 신속하게 해결책을 찾았습니다. 또한 대답을 확인하고 오타 및 약간의 문법 오류를 수정했습니다. – cezar
처음에 당신의 대답을 읽고 해결책을 찾지 못했습니다. (단지 코드를 읽었습니다.) 당신의 설명을 놓치고 쓸데없는 대답을보십시오. 그 후에 나는 그것을 다시 읽었지만 전체를 보았습니다. 아주 좋은 설명입니다. 그래서 나는 가난한 대답을 제거하고 당신의 것을 표시합니다. –