【问题标题】:use @property in tow apps in django在 django 的两个应用程序中使用@property
【发布时间】:2023-01-03 01:18:41
【问题描述】:

应用程序用户 模型

class user(models.Model):
    name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    wallet = models.ForeignKey(Wallet, on_delete=models.CASCADE)
    
    @property
    def full_name(self)
        return self.name + self.last_name

应用钱包 模型

class wallet(models.Model):
     amount = models.IntegerField()

管理员钱包

class UserrInline(admin.TabularInline):
    list_display = [full_name]   # ---> but i cant use property in app user

class walletAdmin(admin.ModelAdmin):
    inlines = [UserrInline]

admin.site.register(wallet, walletAdmin)

我不能在 Django 的两个应用程序中使用属性

【问题讨论】:

    标签: django properties


    【解决方案1】:

    你可以使用一个属性,你可以通过名称访问它,所以名称的字符串:

    class UserrInline(admin.TabularInline):
        list_display = ['full_name']

    然而,使用 f 字符串更具可读性和鲁棒性:

    class User(models.Model):
        # …
    
        @property
        def full_name(self):
            return f'{self.name} {self.last_name}'

    笔记: Django 中的模型是用帕斯卡案例, 不是蛇箱, 所以你可能想重命名模型userUser

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      • 2018-10-24
      • 2018-04-27
      相关资源
      最近更新 更多