Django:返回两个字符串进行自我管理

yk9xbfzb  于 12个月前  发布在  Go
关注(0)|答案(5)|浏览(118)

我有一个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'
谢谢你,谢谢

ukqbszuj

ukqbszuj1#

  • 很明显,我们正在讨论dajngo管理问题 *

方法变更为:

def __str__(self):
        return '%s, %s' ( self.category.whatever-field-in-the-category-model, self.name)

字符串

nhhxz33t

nhhxz33t2#

你需要给+操作数给予2个字符串。所以str(self.category) + self.name可以工作。或者如果类别有name属性,也可以是self.category.name + self.name
请注意,访问Category对象可能会导致大量查询,使您的管理缓慢。

lnlaulya

lnlaulya3#

此格式使用+

return self.first_name + " " + self.last_name

字符串
若要包括其他表中的字段,请使用self.tablename.fieldname

return self.category.name + " " + self.name

6uxekuva

6uxekuva4#

你也可以使用python字符串格式方法。

return "{} {}".format(self.category, self.name)

字符串

ghhkc1vu

ghhkc1vu5#

更改return self.category + self.name
return str('%s %s' % (self.category, self.name))

相关问题