【问题标题】:Name 'member_one' is not defined error in django名称 'member_one' 在 django 中未定义错误
【发布时间】:2020-10-12 11:12:50
【问题描述】:

我想从数据库中获取所有 Message_thread_private 实例,但出现错误 NameError: name 'member_one' 没有定义

模型.py:

class Message_thread_private(models.Model):
    member_one = models.ForeignKey(User, related_name='member_one_messages', on_delete=models.CASCADE)
    member_two = models.ForeignKey(User, related_name='member_two_messages', on_delete=models.CASCADE)
    content = models.TextField()
    created = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.member_one.username

    def last_10_messages():
        return Message.objects.order_by('-timestamp').all()[:10]

views.py:

@login_required
def room(request, room_name):
    users = User.objects.filter(is_active=True).exclude(username=request.user.username)
    messages = Message_thread_private.objects.filter(member_one.username==request.user.username)
    return render(request, 'chat/room.html', {
        'room_name_json': mark_safe(json.dumps(room_name)),
        'username': mark_safe(json.dumps(request.user.username)),
        'users': users,
    })

为什么会出现此错误,我该如何解决?

【问题讨论】:

  • 你需要使用双下划线来过滤外键属性:member_one__username=

标签: python django django-models django-views django-datatable


【解决方案1】:

您的代码中有两个错误。以下是更新后的代码。使用“=”代替“==”和“__”代替“。”

    @login_required
    def room(request, room_name):
        users = User.objects.filter(is_active=True).exclude(username=request.user.username)
        messages = Message_thread_private.objects.filter(member_one__username=request.user.username)
        return render(request, 'chat/room.html', {
            'room_name_json': mark_safe(json.dumps(room_name)),
            'username': mark_safe(json.dumps(request.user.username)),
            'users': users,
        })  

【讨论】:

    猜你喜欢
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多