django - 在下拉列表中返回 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>
解决方案
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.
推荐阅读
- android - 在 ionic cordova 中构建到 android 时出现错误
- multithreading - 如何让一个线程等待另一个线程完成使用 OpenMP 线程?
- typescript - 为什么 Typescript 不会错误泛型联合类型?
- c - 为什么在这种情况下会发生分段错误?Openmp 问题
- php - mysqli insert 在上传大文件时不起作用
- python - 通过列值等于 None 的条件删除 DataFrame 中的行
- python - 由于 EnvironmentError 无法安装软件包:[Errno 28] 设备上没有剩余空间
- python-3.x - 信号斜率的变化点
- php - 带有复选框的表单获取所有选中的复选框
- gerrit - 无法访问更改和创建项目