Ich habe diese Ansicht:wie View-Daten zu verwenden, in django zu füllen bildet
def edit(request):
data = {}
user = request.user
data['requestor'] = user
data['user'] = user
data['member'] = models.Member.objects.get(User=user)
data['Address'] = models.Address.objects.filter(User=user).filter(Primary=True).first()
data['Phone'] = models.Phone.objects.filter(User=user).filter(Primary=True).first()
data['Family'] = models.Family.objects.filter(Primary=data['member'])
data['Sponsor'] = models.Family.objects.filter(Dependent=data['member']).first()
data['rank'] = models.Promotion.objects.filter(User=user).latest('Date_Effective')
data['form'] = forms.profile
return render(request, "member/profile/page_user_edit.html", data)
ich diese Form bin mit der Ansicht zu arbeiten. Bemerkenswert ist, diese Formularfelder aus mehreren Modellen enthalten, also warum es nicht ein modelform
:
class profile(forms.Form):
first_name = forms.CharField(label='First Name', max_length=50, widget=forms.TextInput(attrs={'class': 'md-input'}))
last_name = forms.CharField(label='Last Name', max_length=50, widget=forms.TextInput(attrs={'class': 'md-input'}))
profile_image = forms.FileField()
Street = forms.CharField(label='Street Address', max_length=500, widget=forms.TextInput(attrs={'class': 'md-input'}))
City = forms.CharField(label='City', max_length=50, widget=forms.TextInput(attrs={'class': 'md-input'}))
State = forms.CharField(label='State', max_length=40, widget=forms.TextInput(attrs={'class': 'md-input'}))
Zip = forms.CharField(label='Zip', max_length=20, widget=forms.TextInput(attrs={'class': 'md-input'}))
County = forms.CharField(label='County', max_length=20, widget=forms.TextInput(attrs={'class': 'md-input'}))
Country = forms.CharField(label='Country', max_length=50, widget=forms.TextInput(attrs={'class': 'md-input'}))
Country_Code = forms.CharField(label='Country Code', max_length=5, widget=forms.TextInput(attrs={'class': 'md-input'}))
Area_Code = forms.CharField(label='Area Code', max_length=5, widget=forms.TextInput(attrs={'class': 'md-input'}))
Number = forms.CharField(label='Phone Number', max_length=20, widget=forms.TextInput(attrs={'class': 'md-input'}))
Gender = forms.ChoiceField(choices=choices.GENDER_CHOICES)
Height = forms.FloatField(widget=forms.TextInput(attrs={'class': 'md-input'}))
HairColor = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'class': 'md-input'}))
about = forms.Textarea()
facebook = forms.CharField(max_length=50, widget=forms.TextInput(attrs={'class': 'md-input'}))
twitter = forms.CharField(max_length=50, widget=forms.TextInput(attrs={'class': 'md-input'}))
in der Vorlage:
<div>
<div class="uk-input-group">
<span class="uk-input-group-addon">
<i class="md-list-addon-icon uk-icon-facebook-official"></i>
</span>
<label>{{ form.facebook.label }}</label>
{{ form.facebook }}
</div>
</div>
Das Etikett und das Formularelement zeigt auf der Seite ohne Probleme, aber ich brauche den aktuellen Wert im Formular. Wie schiebe ich den aktuellen Wert in data['member'].facebook
in das Feld form.facebook
?
Wie bewerkstellige ich das? Danke.
See: https://docs.djangoproject.com/en/1.10/howto/initial-data/ –
Kannst du das erklären? Wie bekomme ich die Werte in die Formularelemente? – arcee123