我正在制作一个剧集跟踪器网站,当我希望用户编辑节目时,所提供的表单以空白字段开头。如何使用现有字段填写表格?例如,当用户正在观看节目并且最初是第 5 集时,我如何调用 Episode 字段已经为 5 而不是为空的更新表单?
views.py
class ShowUpdate(UpdateView):
model = Show
slug_field = 'title'
slug_url_kwarg = 'show'
fields = ['description', 'season', 'episode']
show-detail.html
<form action="{% url 'show:show-update' show=show.title %}" method="post">
{% csrf_token %}
<button type="submit">Edit</button>
</form>
最佳答案
您可以使用 UpdateView 中的值填充表单
def get_initial(self):
return { 'field1': 'something', 'field2': 'more stuff' }
此外,UpdateView 还继承自 SingleObjectMixin,后者提供 get_object
和 get_queryset
,因此您可以使用其中任何一个来获取要填充表单的对象数据。像这样的东西:
def get_object(self):
return Show.objects.get(pk=self.request.GET.get('pk'))
Check out the docs for more info
此外,如果您的 url 中有 pk 或 slug 作为参数,它也应该将其提取出来。如:
url(r'^shows/update/(?P<pk>\d+)/$',ShowUpdate.as_view())
关于python - Django:显示 UpdateView 表单时如何放置现有字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39494896/