다음과 같은 모델이 있다고 가정 해 봅시다.ModelForm의 사용자 정의 양식 필드에 값을 미리 채우는 방법
models.py
class Profile(models.Model):
user = models.OneToOneField(User)
middle_name = models.CharField(max_length=30, blank=True, null=True)
그리고 위에서 언급 한의 인스턴스를 설정시에서는 ModelForm
forms.py
class ProfileForm(ModelForm):
email = forms.CharField()
class Meta:
model = models.Profile
fields = ('email', 'middle_name')
에서 다음과 같이 나는 사용자 정의 필드 email
이 modelform이므로 데이터는 다음과 같이 편집 템플리트의 양식으로 미리 채워집니다.
def edit_profile(request):
profile = models.Profile.objects.get(user=request.user)
profileform = forms.ProfileForm(instance=profile)
return render_to_response('edit.html', { 'form' : 'profileform' }, context_instance=RequestContext(request))
def edit_profile(request):
profile = models.Profile.objects.get(user=request.user)
profileform = forms.ProfileForm(instance=profile)
return render_to_response('edit.html', { 'form' : 'profileform' }, context_instance=RequestContext(request))
views.py
지금 내가 얻을 형태로 모든 프로필 모델에서 필드하지만 사용자 정의 필드에 채워져 모든 값은 비어 있고 그것은 의미가 있습니다.하지만 맞춤 입력란의 값을 미리 채울 수있는 방법이 있습니까? 아마도
email = forms.CharField(value = models.Profile.user.email)
나는 당신과 동의한다, 그것은 진짜로 modelform 내의 전자 우편 분야가있는 이해되지 않는다. 비록 제 경우에는 시나리오가 조금 다릅니다. 또한, 나는 단지'inital'의 문서를 읽고 있었고 제 경우에는 도움이 될 것 같습니다. 답변 주셔서 감사합니다 :) – Amyth
쿨, 전 그냥 가정을하고 있었지만, 도움이된다면 정말 멋지 네요! 행복한 코딩. – Bartek