这是我的问题:
我正在构建一个显示用户数据的HTML页面。
在注册用户数据页面中,我以这种方式收集数据:
<div class="large-3 columns">
<label for="pizza">Type of Pizza;
<select id="pizza" name="pizza" >
{% for key, value in pizza.items %}
<option value="{{key}}">{{value}}</option>
{% endfor %}
</select>
</label>
</div>
通过这种方式,用户可以选择他最喜欢的披萨类型。
然后,用户可以在ChangeUserData页面中更改他最喜欢的披萨。
我想在选择字段中显示从我的视图(他最喜欢的披萨)传递的数据,如果用户想要这样做,可以将数据与其他人(一种新类型的披萨)一起更改。 / p>
我该怎么办?
答案 0 :(得分:1)
您应该使用forms framework。我假设披萨存储在UserProfile模型中。
首先,在应用中创建一个定义表单的forms.py文件:
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ['favorite_pizza', ]
然后,您可以使用UpdateView或某些自定义视图来使用该表单。我们假设我们有一个更新视图:
class UserProfileUpdateView(UpdateView):
template_name = 'your_template'
model = UserProfile
form_class = UserProfileForm
现在,转到模板&#39; your_template&#39;:
<form method='post' action='.'>
{% csrf_token %}
{{ form.as_p }}
<input type='submit' value='Confirm pizza change'/>
</form>
这样,django将根据您在favorite_pizza字段定义中指定的选项呈现选择。此外,这将处理将值设置为用户之前选择的值。
编辑:我建议在注册页面中执行相同的操作。通常,只要您能够处理用户输入
,使用表单框架会更快更安全