我有以下型号:
class ShoppingList(models.Model):
name = models.CharField(max_length=100, default='Main')
owners = models.ManyToManyField(User, through='ListOwner')
class ListOwner(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
shopping_list = models.ForeignKey(ShoppingList, on_delete=models.CASCADE)
is_main_owner = models.BooleanField(default=False)
接下来,我想问
ShoppingList
我用过这个
https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships
作为一个例子。
我希望正确的方法是使用这种结构:
@login_required
def index(request):
shopping_list = ShoppingList.objects.filter(owners__user=request.user)\
.order_by('id').first()
# something else
但在这种情况下,我得到一个错误:
Related Field got invalid lookup: user
使用时一切正常
listowner
owner
在里面
filter()
功能如下:
shopping_list = ShoppingList.objects.filter(listowner__user=request.user)\
.order_by('id').first()
有谁能告诉我为什么第一个不起作用(虽然建议在Django文档中使用它)?