Django查询contentType数据以进行评级和审核
我有一个用于旅行的模型和一个用于评级的anotehr模型:Django查询contentType数据以进行评级和审核,django,django-rest-framework,django-orm,django-contenttypes,Django,Django Rest Framework,Django Orm,Django Contenttypes,我有一个用于旅行的模型和一个用于评级的anotehr模型: class Trip(models.Model): name = CharField(max_length=500) rating = GenericRelation(Ratings, related_query_name='trips') class Rating(models.Model): value = models.IntegerField() comment = models.TextFi
class Trip(models.Model):
name = CharField(max_length=500)
rating = GenericRelation(Ratings, related_query_name='trips')
class Rating(models.Model):
value = models.IntegerField()
comment = models.TextField()
created_on = models.DateTimeField(_("Created on"), auto_now_add=True)
这就是我如何填充
trip = Trip.objects.first()
ct = ContentType.objects.get_for_model(trip)
rating = Ratings.objects.create(
value = data['value'],
comment = data['comment'],
content_type = ct,
content_object = trip,
)
但问题是,当我查询评级数据时,如下所示:
trip = Trip.objects.first()
review = trip.rating.all()
for r in review:
print(r.created_on)
我发现以下错误:
AttributeErrorTraceback (most recent call last)
<ipython-input-10-632676dd4f8f> in <module>
3 review = trip.rating.all()
4 for r in review:
----> 5 print(r.created_on)
AttributeError: 'Ratings' object has no attribute 'created_on'
它真的很有效,而且它还返回值并创建,就像这样r.value
和r.created\u by
但问题是在创建的
有什么问题?另外,当我添加新字段时,比如test_test=models.CharFeled..blab bla字段,它们不会获取和触发相同的错误,比如这样的属性不存在。我的问题是,为什么评论和值会返回,为什么其他人不会返回?您的模型中没有“已创建”字段。我刚刚创建了我的输入错误,我编辑了这个问题并重新评估了它
trip = Trip.objects.first()
review = trip.rating.all()
for r in review:
print(r.commnet)