在Django表单中创建动态listdir可以通过以下步骤实现:
import os
from django import forms
class MyForm(forms.Form):
directory = forms.ChoiceField(choices=[], widget=forms.Select(attrs={'class': 'form-control'}))
class MyForm(forms.Form):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['directory'].choices = self.get_directory_choices()
def get_directory_choices(self):
choices = []
# 指定需要遍历的目录路径
directory_path = '/path/to/your/directory'
for filename in os.listdir(directory_path):
if os.path.isdir(os.path.join(directory_path, filename)):
# 只添加目录到选项列表中
choices.append((filename, filename))
return choices
from django.shortcuts import render
def my_view(request):
form = MyForm()
return render(request, 'my_template.html', {'form': form})
<form method="post" action="{% url 'submit_form' %}">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">提交</button>
</form>
这样,使用Django表单创建的表单中的directory
字段将显示动态的目录列表选项。当表单提交时,可以在相应的视图函数中处理用户的选择。
请注意,以上示例仅展示了如何动态创建listdir的选项,并未涉及具体的提交处理和业务逻辑。根据实际需求,你可能需要进一步完善代码。
领取专属 10元无门槛券
手把手带您无忧上云