显然我是Django的新手,因为我认为这相对简单。
让我们在models.py中说我创建了一个模型“User”,有两个字段,一个是“username”和一个“email”字段。在一个名为“UserForm”的表单中,我想访问“用户”模型中所有“用户名”的列表。然后,此列表将用于使用“选择”填充下拉菜单。
我觉得这应该很容易,我一直在寻找一些简单的方法来做到这一点。我可以找到许多并非全包的方式(即filter(username =“Joe”)),但我找不到能列出所有用户的方法。
非常感谢任何帮助。
答案 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,但如果需要,您可以随时覆盖选项。