【问题标题】:Creating a drop down selection box populated by specific model field创建由特定模型字段填充的下拉选择框
【发布时间】:2015-03-18 14:12:41
【问题描述】:

我正在尝试找出为用户创建一种方法以将其他现有用户添加到任务的最佳方法。我的想法是有一个下拉选择框,其中列出了用户,然后可以添加到任务中。有没有一种简单的方法可以从模型中填充下拉菜单并在提交时将所选用户添加到相关的任务对象中

class CustomUser(models.Model):
   user = models.OneToOneField(User, blank=True, null=True)

class Task(models.Model):
   users = models.ManyToManyField(CustomUser, blank=True, null=True)

【问题讨论】:

    标签: html django django-models


    【解决方案1】:

    你不需要做一些特别的事情。只需使用常规的 django ModelForm:

    class TaskForm(forms.ModelForm):
        class Meta:
            model = Task
            fields = ('users', )
    

    users 字段将显示为带有CustomUsers 列表的多选小部件。

    如果您想使用其他形式来管理用户,那么ModelChoiceField 是您的最佳选择:

    class AddUserForm(forms.Form):
        user = forms.ModelChoiceField(queryset=CustomUser.objects.all())
    

    【讨论】:

    • 我基于表面测试,第二个版本在我当前的设置下更容易工作。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 2023-03-21
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    相关资源
    最近更新 更多