Python FieldError:无法解析关键字';shopfavorite';进入现场:Django
我正在使用reversePython FieldError:无法解析关键字';shopfavorite';进入现场:Django,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在使用reverseforeignkey使用django预定义函数预取相关的。但我得到了一个错误:FieldError:无法将关键字“shopfointer”解析到字段中。 我还通过命令行得到了这个错误:AttributeError:在ShopOwnerShopDetails对象上找不到'shopfavorite\u set',shopfavorite\u set'是一个无效的参数,无法预取相关的() 确切的问题是什么?如有任何帮助,将不胜感激。事先非常感谢你 型号: class User(
foreignkey
使用django预定义函数预取相关的
。但我得到了一个错误:FieldError:无法将关键字“shopfointer”解析到字段中。
我还通过命令行得到了这个错误:
AttributeError:在ShopOwnerShopDetails对象上找不到'shopfavorite\u set',shopfavorite\u set'是一个无效的参数,无法预取相关的()
确切的问题是什么?如有任何帮助,将不胜感激。事先非常感谢你 型号:
class User(AbstractBaseUser, PermissionsMixin):
# common fields
name = models.CharField(max_length=50)
email = models.EmailField(unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = CustomUserManager()
class ShopOwnerShopDetails(models.Model):
shop_name = models.CharField(max_length=80, blank=True, null=True)
shop_location = models.CharField(max_length=200)
class ShopFavorite(models.Model):
shop_id = models.ForeignKey(ShopOwnerShopDetails, on_delete=models.CASCADE, related_name='favorite_shop_id')
favorited_by = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_favorite_shop')
观点:
class GarageShopListView(ListAPIView):
permission_classes = (IsAuthenticated,)
def get(self,request,*args,**kwargs):
user = request.user
queryset = ShopOwnerShopDetails.objects.filter(
shopfavorite__favorited_by=user
).prefetch_related('shopfavorite_set',)
serializer = ShopOwnerShopDetailsSerializer(queryset, many=True, context={'request': request})
data = serializer.data
您得到的错误很明显:您试图从
ShopOwnerShopDetails
访问shopfavorite\u集
,而此模型没有任何指向用户的FK
如果我理解正确,您希望获得当前用户最喜爱的商店列表。
在这种情况下,我将使用不同的查询集
queryset=ShopFavorite.objects.filter(
favorited_by=用户
).选择相关('favorited'u by'、'shop'u id')
然后在序列化程序中,您可以访问
用户
和店主详细信息
实例您可以向我们展示您的用户
类吗?@OliverHnat我已经编辑了我的问题。请看一下。ShopOwnerShopDetails
没有FK to User,您不应该使用shopfointer
?