Skip to main content
 首页 » 编程设计

python之Django:显示 UpdateView 表单时如何放置现有字段

2025年04月02日38hnrainll

我正在制作一个剧集跟踪器网站,当我希望用户编辑节目时,所提供的表单以空白字段开头。如何使用现有字段填写表格?例如,当用户正在观看节目并且最初是第 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())