首页 > 解决方案 > 在下拉列表中返回 first_name 和 last_name

问题描述

我有一个用户名下拉列表,但我想从用户模型中取而代之的是 first_name + Last_name。我一直在尝试以各种方式在模型中返回这些,知道我哪里出错了吗?

def __str__(self):
    # return self.assigned_to.first_name
    # return str(self.firstname)+ '-' +str(self.lastname)
    # return u'%s %s' % (assigned_to.first_name, self.last_name)
    # return str(self.user.first_name)
    # return str(self.location_name)+ '.' +str(self.location_sub_name)

在我的模型中:

assigned_to = models.ForeignKey(settings.AUTH_USER_MODEL, db_column='assigned_to', on_delete = models.PROTECT, related_name='assigned')

在我的htmlform中:

<div class="col col-md-4" style="color:white;">{{ form.assigned_to|add_class:"col-md-12"|append_attr:"placeholder:To"}}</div>

标签: django

解决方案


The first_name and last_name are attributes of the User model [Django-doc], given of course that you use that model, or a model that has a first_name and last_name attribute. You obtain these through self.assigned_to.first_name and self.assigned_to.last_name:

class MyModel(models.Model):
    assigned_to = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        db_column='assigned_to',
        on_delete=models.PROTECT,
        related_name='assigned'
    )

    def __str__(self):
        return '{} {}'.format(
            self.assigned_to.first_name,
            self.assigned_to.last_name
        )

As for your Form, you should specify the attrs into the form class itself.


推荐阅读