首页 > 解决方案 > 如何在 Django 下拉 HTML 表单中编辑数据?

问题描述

我有一个表单,我正在编辑单个潜在客户数据,我使用 Django 默认管理面板提交数据。但现在我正在我的默认表单上编辑数据。所以我担心的是,如果我编辑任何潜在客户,则应在数据库中可用的下拉列表中选择默认值,如果我想更改下拉列表值,则可以从下拉列表中选择它。

这是我的Models.py文件

class Leads(models.Model):
   SOURCE = (
    ('Facebook', 'Facebook'),
    ('Website', 'Website'),
    ('PPC', 'PPC'),
    ('Reference', 'Reference'),
    ('Other Source', 'Other Source')
)
    
name = models.CharField(max_length=50, default=None)
email = models.EmailField(max_length=50, null=True, blank=True)
phone = models.CharField(max_length=10, default=None)
source = models.CharField(choices=SOURCE, default=2, max_length=100)

这是我的urls.py文件

path(r'^leads/<int:id>/change',views.leads_edit, name="leads_edit"),

这是我的views.py文件...

def leads_edit(request, id):
    leads = Leads.objects.get(id=id)
    context = {'leads':leads}
    template_name = 'file/edit.html'
    return render(request, template_name, context)

这是我的edit.html文件,我在哪里尝试使用下拉字段进行编辑...

{% for obj in leads.SOURCE %}
    <option value="{{ leads.source }}">{{ obj}}</option>
{% endfor %}

请检查我的代码,让我知道如何显示数据库中的选定字段,以及如何在下拉列表中显示其余其他字段。因为我可以更改下拉字段。

标签: pythondjangodjango-modelsdjango-templates

解决方案


请试试这个,希望对你有帮助...

{% for id, obj in leads.SOURCE %}
     <option value="{{ id }}"{% if leads.source == id %} selected="selected"{% endif %}>{{ obj }}</option>
{% endfor %}

推荐阅读