我在通过related_name访问不同类别的模型时遇到问题,我需要您的帮助来找到一个干净的解决方案,该解决方案使用很少的SQL查询并且易于扩展:
viewer.model
在我看来,我会遍历class RoundTripToDifferentPlaces(models.Model):
price = models.FloatField(default=0)
user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
...
class PlaceVisit(models.Model):
roundtrip = models.ForeignKey(RoundTripToDifferentPlaces, related_name="place_visit")
individual_price = models.FloatField(default=0)
name = models.CharField(max_length=31, null=True)
street = models.CharField(max_length=31, null=True)
creation_date = models.DateTimeField(auto_now_add=True)
...
class RestaurantVisit(models.Model):
place = models.OneToOneField(Job, on_delete=models.CASCADE, primary_key=True)
Some more fields...about pricedetails
class LibraryVisit(models.Model):
place = models.OneToOneField(Job, on_delete=models.CASCADE, primary_key=True)
Some more fields...about pricedetails
...many more subcategories of places and i will add more in the future
,并且需要获取相关模型的所有信息。
我希望可以在我的模型中:
RoundTripToDifferentPlaces
在我的视图/模板中:
class RestaurantVisit(models.Model):
placevisit = models.OneToOneField(Placevisit, related_name="specific_visit")
roundtrip = models.OneToOneField(RoundTripToDifferentPlaces, related_name="restaurant_visit")
Some more fields...
class LibraryVisit(models.Model):
placevisit = models.OneToOneField(Placevisit, related_name="specific_visit")
roundtrip = models.OneToOneField(RoundTripToDifferentPlaces, related_name="library_visit")
Some more fields...
(RoundTrip只能访问一次,也可以有不同型号的访问次数)
似乎不允许即时通讯给不同的班级使用相同的 ...
roundtrip = RoundTripToDifferentPlaces().objects.filter(user = request.user )
for visit in roundtrip.place_visit.all():
print(visit)
print(visit.spefic_visit) #does not work
#and e.g.:
print(roundtrip.restaurant_visit) #works perfectly
。
是否有解决方法,或者使用通用密钥有可能吗?