ModelMultipleChoiceField上的Django Multi值

Bud*_*wan 5 python django django-models django-forms

models.py

class User(models.Model):
    id = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    desc = models.TextField()
    created_at = models.DateTimeField(auto_now=True)
    updated_at = models.DateTimeField(auto_now_add=True, null=True)

    def __str__(self):
        return self.user.name
Run Code Online (Sandbox Code Playgroud)

我的forms.py

class PostsForm(forms.ModelForm):
    user = forms.ModelMultipleChoiceField(
        queryset=User.objects.all()
        )
    class Meta:
        model = Posts
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

在我的表单上面我的代码看起来像这样:

+------------+
|Select    + |
+------------+
|John Doe    |
|Jessica     |
|Jessica     |
|Alex Joe    |
+------------+
Run Code Online (Sandbox Code Playgroud)

Hovewer不是我想要的,因为可能有多个名字,我知道这个价值来自def __str__于我的模型.

如何在我的领域添加另一个str将是:

+---------------------+
|Select             + |
+---------------------+
| 012931 - John Doe   |
| 012932 - Jessica    |
| 012933 - Jessica    |
| 012934 - Alex Joe   |
+---------------------+
Run Code Online (Sandbox Code Playgroud)

它包含下拉列表中的id +名称,或其他信息.

Bij*_*joy 2

User模型中,__str__您可以按照doc中的说明进行操作。

def __str__(self):
    return "{} - {}".format(self.id, self.user.name)
Run Code Online (Sandbox Code Playgroud)

这是 的一个示例self.id,您可以在那里获取任何值,例如self.name等。