所以我试图通过关系属性“所有者”查询我的“个人资料”表,该属性链接到另一个表“用户”。但是,当我尝试通过此属性进行查询时,我收到以下错误:'AssertionError: Expected view UserProfile to be called with a URL关键字参数名为“pk”。修复您的 URL 配置,或正确设置视图上的 .lookup_field 属性。
查询我使用的表: Profile.objects.filter(owner__username = username)
模型.py:
class User(models.Model):
username = CharField(max_length = 80)
class Profile(models.Model):
owner = models.OneToOneField('User',
related_name = 'profile', on_delete = models.CASCADE)
视图.py:
class UserProfile(generics.GenericAPIView,
mixins.RetrieveModelMixin):
def get_queryset(self):
username = self.kwargs['username']
return Profile.objects.filter(owner__username=username)
serializer_class = UserProfileSerializer
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
网址.py:
urlpatterns = [
path('user/<str:username>/profile/', views.UserProfile.as_view()),
]
为什么我会收到此错误,我该如何解决?任何帮助将非常感激。
谢谢,格雷。