在Django中访问模型变量

在Django中访问模型变量,django,django-models,django-forms,Django,Django Models,Django Forms,显然,我是Django的新手,因为我认为这是相对简单的 假设在my models.py中,我创建了一个模型“User”,它有两个字段,一个“username”和一个“email”字段。在一个名为“UserForm”的表单中,我想访问“User”模型中所有“username”的列表。然后,该列表将用于使用Select填充下拉菜单 我觉得这应该很容易,我一直在寻找一些简单的方法来做到这一点。我可以找到很多不包罗万象的方法(例如filter(username=“Joe”)),但我找不到一种可以列出所有

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

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

我觉得这应该很容易,我一直在寻找一些简单的方法来做到这一点。我可以找到很多不包罗万象的方法(例如filter(username=“Joe”)),但我找不到一种可以列出所有用户的方法


任何帮助都将不胜感激。

您正在寻找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,但如果需要,您可以随时覆盖这些选项。

您能更具体一点吗?您希望列表显示在哪里?这是表单的一部分吗?谢谢你抓到了这个输入错误Daniel。如果这是个哑巴,很抱歉,但是你能解释一下init函数吗?我假设在调用表单时,它将运行,并用用户对象列表填充“user”字段。问题是,我没有使用django的默认用户(主要是因为我不知道如何使用)。如何使用自定义用户模型实现这一点?或者我应该使用django用户吗?没错。没有说明必须使用Django中的默认用户对象。这取决于你的应用程序需要什么。谢谢。现在,我正在查看用户文档,我认为这就是要做的事情=)