python - 值错误 : Field 'id' expected a number but got 'super' . [04/4/2020 18:15:11] "GET/super_user HTTP/1.1"500 132224

标签 python django python-3.x django-models

我的项目使用户能够撰写帖子,每个帖子都有一个类别,每个类别都有一个主管,所以我遇到了一个问题,我无法获取特定主管的特定类别的所有帖子。

我的模型

class PostCategory(models.Model):
    name = models.CharField(max_length=150, null=True)
    description = models.CharField(max_length=100, null=True)

    def __str__(self):
        return self.name

class UserSupervisorSpecialist(models.Model):
    user = models.ForeignKey(User, related_name="user_id", on_delete=models.SET_NULL, null=True)
    category = models.OneToOneField(CategoryPost, related_name="category_id", on_delete=models.SET_NULL, null=True)

    def __str__(self):
        return self.user.username

class Post(models.Model):
    title = models.CharField(max_length=100, null=True)
    content = RichTextField()
    post_category = models.ManyToManyField(CategoryPost)
    author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    date_create = models.DateTimeField(auto_now_add=True, null=True)
    status = models.BooleanField(default=False) #0 -> suspend
    likes = models.IntegerField(default=0) #0 -> No like yet
    supervisor = models.ForeignKey(UserSupervisorSpecialist, on_delete=models.SET_NULL, null=True)

    def __str__(self):
        return self.title

    def snippet(self):
        return self.content[:150]

我的观点:

def control_spanle(request):
    category = UserSupervisorSpecialist.objects.filter(user=request.user)
    post_filter = Post.objects.filter(supervisor=request.user.username)
    return render(request, 'supervisor/controle_panel.html',{'Category':category,'post_filter':post_filter})

最佳答案

您在 Post 模型上编写了一个查询集,但未指定字段,同时将其与字符串进行比较。

您可以通过更改此行来解决此问题

post_filter = Post.objects.filter(supervisor=request.user.username)

至:

post_filter = Post.objects.filter(supervisor__name=request.user.username)

关于python - 值错误 : Field 'id' expected a number but got 'super' . [04/4/2020 18:15:11] "GET/super_user HTTP/1.1"500 132224,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61030415/

相关文章:

python - python 3.5 中的 dict.popitem()

python - 如何从 csv 文件中排除特定组?

python - 尝试注销 django 时出现运行时错误

python - 使用 PySide2 在 QML 中注册类型

python - 无法从 request.session 中通过键获取值;我用Django

python - 如何在 Django 中获取当前语言?

python-3.x - PyTorch DLL 加载失败

python - 创建一个新列,将相同的索引分配给Pandas DataFrame中的重复值

python - 如果列表的元素为空,如何在 python 中进行检查?

python - Beautiful Soup 解析 url 以获取另一个 urls 数据