显然我是 Django 的新手,因为我认为这相对简单。
假设在我的 models.py 中我创建了一个模型“用户”,它有两个字段,一个“用户名”和一个“电子邮件”字段。在一个名为“UserForm”的表单中,我想访问“用户”模型中所有“用户名”的列表。然后,该列表将用于使用 Select 填充下拉菜单。
我觉得这应该很容易,我一直在寻找一些简单的方法来做到这一点。我可以找到很多不包括所有方法的方法(即过滤器(用户名=“乔”)),但我找不到列出所有用户的方法。
任何帮助将不胜感激。
显然我是 Django 的新手,因为我认为这相对简单。
假设在我的 models.py 中我创建了一个模型“用户”,它有两个字段,一个“用户名”和一个“电子邮件”字段。在一个名为“UserForm”的表单中,我想访问“用户”模型中所有“用户名”的列表。然后,该列表将用于使用 Select 填充下拉菜单。
我觉得这应该很容易,我一直在寻找一些简单的方法来做到这一点。我可以找到很多不包括所有方法的方法(即过滤器(用户名=“乔”)),但我找不到列出所有用户的方法。
任何帮助将不胜感激。
您正在寻找一个 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,但如果需要,您始终可以覆盖选择。