我正在尝试将两个属性分配给我的用户类。第一个分配的属性将用于分配第二个属性。它是否正确?我正在使用@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)
答案 0 :(得分:2)
我仍然不明白你为什么要在这里使用属性。这真的不是他们的目的。属性修饰器用于为复杂属性创建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()
。
答案 1 :(得分:-1)
如果您正在编写返回某些值或字符串的方法,那么您应该使用
@property decorator
class Person(models.Model):
name = models.CharField(max_length=255)
birth_date = models.DateField()
@property
def age(self):
return ......