如何在 Django 下拉 HTML 表单中编辑数据?

sai*_*tor 5 python django django-templates django-models

我有一个正在编辑单个潜在客户数据的表单,我使用 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)
Run Code Online (Sandbox Code Playgroud)

这是我的urls.py文件

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

这是我的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)
Run Code Online (Sandbox Code Playgroud)

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

{% for obj in leads.SOURCE %}
    <option value="{{ leads.source }}">{{ obj}}</option>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

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

小智 3

请尝试一下这个,我希望它能帮助你......

{% for id, obj in leads.SOURCE %}
     <option value="{{ id }}"{% if leads.source == id %} selected="selected"{% endif %}>{{ obj }}</option>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)