我正在尝试按照 Django 网站上的文档来覆盖表单的默认格式。 我已经尝试了许多解决方案(所有解决方案都被注释掉了,它们给了我一个错误)。 未注释的部分有效,但只是呈现一个没有任何选择的选择框。 你能告诉我我做错了什么吗?
def get_site_geographies():
return Site.objects.values_list('site_geography', flat=True).distinct()
class SiteFilterForm(forms.ModelForm):
class Meta:
model = Site
fields = ['site_geography', 'site_region', 'site_name']
# field_classes = {
# 'site_geography': forms.ChoiceField(choices=get_site_geographies())
# }
widgets = {
'site_geography': forms.Select
# widgets = {
# 'site_geography': forms.ChoiceField(choices=get_site_geographies())
# }
在 models.py 中,这是我所指的相关模型字段:
class Site (models.Model):
site_name = models.CharField(max_length=255)
site_geography = models.CharField(max_length=255)
site_region = models.CharField(max_length=255, blank=True)
选择选项需要迭代对象。2 元组的列表或元组,其格式为:
(value, value to display)
因此,您需要迭代您的值并创建此格式。