我正在尝试创建一个Webapp,专门为用户呈现数据。 我必须进行建模,一种用于用户(内置于用户的djangos),另一种用于呈现的数据。 我为用户设计的模型:
class UserProfileInfo(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
def __str__(self):
return self.user.username
我的数据模型:
class MyModel(models.Model):
user_k = models.ForeignKey(User,related_name='RelatedName',on_delete=models.CASCADE)
Date_Time = models.DateTimeField(default=timezone.now)
DataOne = models.PositiveIntegerField(null=True)
DataTwo = models.PositiveIntegerField(null=True)
DataThree = models.PositiveIntegerField(null=True)
在我的views.py文件中,我有以下视图:
class MyView(DetailView):
model = models.User
context_object_name = 'mylist'
template_name = 'my_app/example.html'
def get_queryset(self):
return User.objects.filter(user_k=self.request.user)
我无法解决的问题是出现此错误:
Cannot query "user": Must be "MyModel" instance.
我已经对其进行了多次Google搜索,还尝试了django文档。 我的猜测是问题可能出在我的模型中,我的目的是将第二个模型连接到用户名,但是我不确定。
感谢您的帮助!
答案 0 :(得分:1)
User
没有user_k
属性的原因,所以User.objects.filter(user_k=xxx)
没有任何意义。
使用您的MyModel
模型:
class MyView(DetailView):
model = models.MyModel
def get_queryset(self):
return MyModel.objects.filter(user_k=self.request.user)
或使用您的UserProfileInfo
模型:
class MyView(DetailView):
model = models.UserProfileInfo
def get_queryset(self):
return UserProfileInfo.objects.filter(user=self.request.user)