访问Django中的模型变量

时间:2013-05-28 02:53:02

标签: django django-models django-forms

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

让我们在models.py中说我创建了一个模型“User”,有两个字段,一个是“username”和一个“email”字段。在一个名为“UserForm”的表单中,我想访问“用户”模型中所有“用户名”的列表。然后,此列表将用于使用“选择”填充下拉菜单。

我觉得这应该很容易,我一直在寻找一些简单的方法来做到这一点。我可以找到许多并非全包的方式(即filter(username =“Joe”)),但我找不到能列出所有用户的方法。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您正在寻找ModelChoiceField。可以从ORM调用填充其queryset属性,从而为您提供所有用户。有关详细信息,请查看文档中的Creating Forms from Models部分。

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