我有一个Python模型,我想返回两个字段的组合:category
+ name
。
唯一的问题是category字段是一个关系,在category表中,它是一个“name”字段。注意,__str__
是名称。
范例:
类别表:id 1“hot”
产品表:id 1“巧克力”
在Django-Admin中(我除外):“热巧克力”
代码如下:
class Product(models.Model):
name = models.CharField(_('product_name'), max_length=55)
image = models.CharField(_('product_image'),max_length=255)
description = models.CharField(_('product_description'), max_length=500)
price = models.DecimalField(_('product_price'), max_digits=4, decimal_places=2)
category = models.ForeignKey(Categorie, on_delete=models.CASCADE)
def __str__(selfProduct):
return self.category + self.name
字符串
错误如下:不支持+的操作数类型:'Category'和'str'
谢谢你,谢谢
5条答案
按热度按时间ukqbszuj1#
方法变更为:
字符串
nhhxz33t2#
你需要给+操作数给予2个字符串。所以
str(self.category) + self.name
可以工作。或者如果类别有name
属性,也可以是self.category.name + self.name
。请注意,访问Category对象可能会导致大量查询,使您的管理缓慢。
lnlaulya3#
此格式使用+
字符串
若要包括其他表中的字段,请使用self.tablename.fieldname
型
6uxekuva4#
你也可以使用python字符串格式方法。
字符串
ghhkc1vu5#
更改
return self.category + self.name
至
return str('%s %s' % (self.category, self.name))