Skip to main content
 首页 » 编程设计

python之Django:如何使用@property 在模型中设置属性

2025年01月19日27开发

我正在尝试将两个属性分配到我的User 类。第一个分配的属性将用于分配第二个属性。它是否正确?我正在使用 @property 装饰器...

class User(n): 
 
    group = models.ForeignKey(Brand, null=True, blank=True) 
    is_admin = models.BooleanField(default=True) 
 
    # assign the apps property (User.apps) 
    @property 
    def assign_apps(self): 
        self.apps = get_user_apps(self.group, self.is_admin) 
 
    # with User.apps, assign the apps_meta property (User.apps_meta) 
    @property 
    def assign_apps_meta(self): 
        self.apps_meta = get_user_apps_meta(self.apps) 

请您参考如下方法:

我还是不明白你为什么要在这里使用属性。这真的不是他们的目的。属性装饰器用于为复杂属性创建 getter 和 setter;那根本不是你在做的。

这似乎是一个简单方法的工作。

def assign_apps(self): 
    self.apps = get_user_apps(self.group, self.is_admin) 
    self.apps_meta = get_user_apps_meta(self.apps) 

现在您可以调用 my_user.assign_apps()。