【问题标题】:How to covert set to String?如何将集合转换为字符串?
【发布时间】:2020-11-30 22:20:47
【问题描述】:

我有一个模型,我正在使用 @property 返回函数,但它给了我集合中的数据,我想要这个数据在一个带逗号的字符串中,请告诉我我该怎么做。

这是我的models.py 文件:

class ShippingAddress(models.Model):
    customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, blank=True, null=True)
    order = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True)
    address = models.CharField(max_length=200, null=True)
    city = models.CharField(max_length=200, null=True)
    state = models.CharField(max_length=200, null=True)
    zipcode = models.CharField(max_length=200, null=True)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.address

    @property
    def Address(self):
        return str(self.address), str(self.state), str(self.zipcode)

这是我的admin.py 文件,我在哪里调用函数:

class ShippingAddressAdmin(admin.ModelAdmin):
    list_display=['city','state','Address']
    readonly_fields=['city','Address']
admin.site.register(ShippingAddress, ShippingAddressAdmin)

@property 函数的输出是这样的:

('House number-69, sector-55, Gurugram', 'Haryana', '122002')

【问题讨论】:

  • 你返回一个字符串元组。你应该这样做:return f'{self.address}, {self.state}, {self.zipcode}'

标签: python django django-models django-views django-admin


【解决方案1】:

你可以使用 Python f-string 来设置你想要的格式。

例如,您可以更改 return str(self.address), str(self.state), str(self.zipcode)return f'{self.address}, {self.state}, {self.zipcode}'

【讨论】:

  • 不,f-strings默认使用__str__方法,所以不需要调用str()
  • @VaclavPelc 感谢您清除它。我相应地编辑了我的解决方案。
【解决方案2】:

这样返回 ",".join(你的集合) 这将连接所有以逗号分隔的设置值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    相关资源
    最近更新 更多