【发布时间】:2013-04-08 05:41:20
【问题描述】:
models.py
class ChatMessage(models.Model):
ip=models.IPAddressField()
message=models.CharField(max_length=200)
class BlockIp(models.Model):
ip=models.IPAddressField()
admin.py
class ChatMessageAdmin(admin.ModelAdmin):
def queryset(self, request):
qs = super(ChatMessageAdmin, self).queryset(request)
#block=BlockIp.objects.all()
return qs.exclude(ip='1.1.1.1')
我已经重写了 ChatMessage 类的查询集方法。 我正在尝试返回类似的内容:
SELECT * FROM chatmessage as v1 JOIN blockip as v2 on v1.ip!=v2.ip
所以用户只能看到 IP 不在 blockip 条目中的消息
return qs.exclude(ip=BlockIp.objects.all().ip) 语法不正确:(
有什么建议吗?
【问题讨论】:
标签: django django-admin django-queryset