此代码:
class Food(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=199)
class Box(models.Model):
user = models.ForeignKey(User)
food = models.ManyToManyField(Food, blank=True, null=True)
如何在我的观看功能中获取food
当前登录用户(Box
)中的所有request.user
def get_food(request, id):
box = Box.objects.filter(user=request.user, id=id)
答案 0 :(得分:0)
def get_food(request, id):
box = Box.objects.filter(user=request.user, id=id)
food = Food.objects.filter(box=box)
答案 1 :(得分:0)
规范方法是定义适当的related_name
:
class Food(models.Model):
user = models.ForeignKey(User, related_name='foods')
name = models.CharField(max_length=199)
class Box(models.Model):
user = models.ForeignKey(User, related_name='boxes')
food = models.ManyToManyField(Food, blank=True, null=True)
所以你可以这样做:
request.user.foods.all()
或者:
request.user.boxes.all()
即使没有related_name
,您仍然可以:
request.user.food_set.all()
request.user.box_set.all()
有关详细信息,请参阅https://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects