2
문제는 Gift라는 모델입니다. 그리고 그것은 객체가 생성 될 때 관리자 인터페이스에서 숨기고 싶은 부울 필드 인 'giftbought'를 가지고 있으며, 업데이트 될 때 그것을 보여줍니다. Django 사용자 정의 양식 (관리자 용) 동적으로 필드 삭제
나는 초기화를 오버라이드 (override), 양식을 만드는 tryed 방법 같은 :class GiftForm(forms.ModelForm):
giftbought = forms.BooleanField(label=u"Bought?", required=False)
class Meta:
model = Gift
def __init__(self, *args, **kwargs):
super(GiftForm, self).__init__(*args, **kwargs)
if not self.instance.pk:
del self.fields['giftbought']
그러나 그것은 말했다되는 것처럼, 관리자 작동하지 않습니다 : 내가 필요 Remove fields from ModelForm
I 일 get_form 메서드를 재정의하는 ModelAdmin 클래스를 만들 수 있지만 is_instance 여부를 확인하는 방법을 모르겠습니다 ...
class GiftAdmin(admin.ModelAdmin):
model = Gift
def get_form(self, request, obj=None, **kwargs):
# that IF doesnt work!!!
if not self.instance.pk:
self.exclude = ('giftbought',)
return super(GiftAdmin, self).get_form(request, obj=None, **kwargs)
admin.site.register(Gift, GiftAdmin)
힌트가 있습니까?
안녕하세요 Paulo .. 삽입하고 업데이트하는 중 오류가 발생했습니다. 'GiftAdmin'개체에 'pk'속성이 없습니다. – StaticX
처음에는 어떻게 받아들였습니까? self.instance.pk? –
"obj가 None이면"으로 바뀌 었습니다! self.instance도 존재하지 않습니다. – StaticX