我正在遵循@Yauhen Yakimovich 在这个问题中使用的方法:
拥有一个模型字段,它是不同模型的计算。
问题:
FieldError: Cannot resolve keyword 'rating' into field. Choices are: _rating
rating
模型字段 inst 正确隐藏并被我的属性覆盖,当rating
我尝试访问它时导致错误。
我的模型:
class Restaurant(models.Model):
...
...
@property
def rating(self):
from django.db.models import Avg
return Review.objects.filter(restaurant=self.id).aggregate(Avg('rating'))['rating__avg']
Yauhen 回答中的模型:
class MyModel(models.Model):
__foo = models.CharField(max_length = 20, db_column='foo')
bar = models.CharField(max_length = 20)
@property
def foo(self):
if self.bar:
return self.bar
else:
return self.__foo
@foo.setter
def foo(self, value):
self.__foo = value
关于如何正确隐藏rating
字段和定义@property
技术的任何想法?