[英]How to display an initial value in the text field?
I load the form. 我加载表格。 I need to in the text field
city
shows the initial value. 我需要在文本字段中显示
city
的初始值。
models: 楷模:
class City(models.Model):
city = models.CharField(
max_length=40, blank=True,
)
class UserProfile(User):
family = models.CharField(
'Фамилия', max_length=30, blank=True, null=True,
)
city = models.ForeignKey(
City, verbose_name='Город', max_length=50, blank=True, null=True,
)
forms: 形式:
class PersonalDataForm(forms.ModelForm):
city = forms.CharField(
label='Город',
required=False,
)
class Meta:
model = UserProfile
fields = (
'family',
)
def save(self):
obj = super(PersonalDataForm, self).save(commit=False)
city_name = self.cleaned_data.get('city', None).strip()
if city_name:
if City.objects.filter(city=city_name).exists():
obj.city = City.objects.get(city=city_name)
else:
rec = City(city=city_name)
rec.save()
obj.city = rec
else:
obj.city = None
return obj.save()
views: 观点:
def personal_data_page(request):
entry_user_profile = UserProfile.objects.get(user_ptr_id=request.user.id)
form = PersonalDataForm(instance=entry_user_profile)
if request.method == 'POST':
form = PersonalDataForm(request.POST, instance=entry_user_profile)
if form.is_valid():
form.save()
return HttpResponseRedirect('/userprofile/personal_data_page_changed/')
t = loader.get_template('personal_data_page.html')
c = RequestContext(request, {
'form': form,
}, [custom_proc])
return HttpResponse(t.render(c))
template.html: template.html:
{{ family.city }}
{{ form.city }}
the problem is that when loading the form field 'city' is empty. 问题在于,在加载表单字段时,“ city”为空。 but it must contain the value from the table (table full of values)
但它必须包含表中的值(充满值的表)
If you use this pattern, the initial value should be visible: 如果使用此模式,则初始值应可见:
if request.method=='POST':
data=request.POST
else:
data=None
form=MyForm(data, initial=...)
if (not data is None) and form.is_valid():
form.save()
return django.http.HttpResponseRedirect(...)
return HttpResponse(render(...))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.