【发布时间】:2020-09-11 18:36:14
【问题描述】:
我正在尝试通过其 OneToOneField 关系“用户”的“用户名”属性来查询我的“个人资料”模型。
我试图通过使用 Profile.objects.get(owner.name = ...) 设置我的查询集来完成此操作,但是这样做时我收到一条错误消息,提示“SyntaxError:表达式不能包含赋值,也许你的意思是“==”?这很令人困惑,好像我将这些参数设置为“id = ...”之类的东西,我没有收到这样的错误。
我在这里做错了什么?如果我想通过“所有者”关系的“用户名”查询“个人资料”表,我该怎么做?
我在下面附上了我的代码。
models.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)
urls.py:
urlpatterns = [
path('user/<str:username>/profile/', views.UserProfile.as_view()),
]
谢谢
【问题讨论】:
-
owner__username=username
标签: python django api rest django-rest-framework