0

显然我是 Django 的新手,因为我认为这相对简单。

假设在我的 models.py 中我创建了一个模型“用户”,它有两个字段,一个“用户名”和一个“电子邮件”字段。在一个名为“UserForm”的表单中,我想访问“用户”模型中所有“用户名”的列表。然后,该列表将用于使用 Select 填充下拉菜单。

我觉得这应该很容易,我一直在寻找一些简单的方法来做到这一点。我可以找到很多不包括所有方法的方法(即过滤器(用户名=“乔”)),但我找不到列出所有用户的方法。

任何帮助将不胜感激。

4

1 回答 1

0

您正在寻找一个 ModelChoiceField。它的queryset属性可以从 ORM 调用中填充,让您获得所有用户。查看文档中的从模型创建表单部分以获取更多信息。

from django.contrib.auth.models import User

class UserForm(forms.ModelForm):
    class Meta:
        model = # Your model here

    def __init__(self, *args, **kwargs):
        self.fields['user'] = forms.ModelChoiceField(queryset=User.objects.all())

ForeignKey 字段将自动显示为 ModelChoiceFields,但如果需要,您始终可以覆盖选择。

于 2013-05-28T03:18:33.607 回答