【发布时间】:2020-12-30 12:55:51
【问题描述】:
所以我试图通过关系属性“所有者”查询我的“个人资料”表,该属性链接到另一个表“用户”。但是,当我尝试通过此属性进行查询时,出现以下错误: 'AssertionError:预期视图 UserProfile 将使用名为“pk”的 URL 关键字参数调用。修复您的 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)
Views.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()),
]
为什么会出现此错误,我该如何解决?任何帮助将不胜感激。
谢谢,格雷。
【问题讨论】:
标签: python django api django-rest-framework drf-queryset