gpt4 book ai didi

python - 让 Django 管理对象页面显示更少?

转载 作者:行者123 更新时间:2023-12-05 05:35:47 24 4
gpt4 key购买 nike

我目前正在尝试让 django 管理中的项目页面(即/admin/dictionary/word/153/change)显示得更少,我只是不确定该怎么做。

鉴于任何随机词都可能有 10000 个赞成票,加载时实际进入页面需要一段时间。所以不希望它显示投票?

这是我的 admin.py 和我的模型。

from django.contrib import admin
from diccionario.models import Palabra, Tag
from django.utils.safestring import mark_safe


class TagInline(admin.TabularInline):
model = Tag

def has_change_permission(self, request, obj=None):
return False

def has_add_permission(self, request, obj=None):
return False


class PalabraAdmin(admin.ModelAdmin):
list_display = (
'nombre',
'get_post_action',
'definicion',
'ejemplo',
'gramatica',
'get_sinonimos',
'get_antonimos',
'pais',
'creado',
'get_user_username',
'aprobada',
'anonimo'
)
list_filter = (
'creado',
)
inlines = [TagInline]

def get_sinonimos(self, obj):
return ', '.join([item.nombre for item in obj.tag_set.filter(tag_type='Sinónimo')])

def get_antonimos(self, obj):
return ', '.join([item.nombre for item in obj.tag_set.filter(tag_type='Antónimo')])

def get_user_username(self, obj):
if obj.user:
return obj.user.username if obj.user.username else obj.user.email

def get_post_action(self, obj):
return mark_safe('<a class="btn btn-primary" href="/api/admin/aprobar/%s">Aprove</a>'
'<div style="margin: 5px 0"></div>'
'<a class="btn btn-danger" href="/api/admin/borrar/%s">Borrar</a>'
'<div style="margin: 5px 0"></div>' % (
obj.id,
obj.id,

))

get_sinonimos.short_description = 'Sinónimos'
get_antonimos.short_description = 'Antónimos'
get_user_username.short_description = 'username'
get_post_action.short_description = 'action'


admin.site.register(Palabra, PalabraAdmin)

这是models.py

import re

from django.db import models
from accounts.models import CustomUser


class IpAddress(models.Model):
creado = models.DateTimeField(auto_now_add=True)
ip_address = models.GenericIPAddressField(unique=True)


class Palabra(models.Model):
nombre = models.TextField(max_length=250)
definicion = models.CharField(max_length=1000, unique=True)
ejemplo = models.CharField(max_length=250)
creado = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(CustomUser, on_delete=models.SET_NULL, null=True, blank=True)
anonimo = models.BooleanField(default=True)
aprobada = models.BooleanField(default=False)
userUpVotes = models.ManyToManyField(IpAddress, blank=True, related_name='threadUpVotes')
userDownVotes = models.ManyToManyField(IpAddress, blank=True, related_name='threadDownVotes')
gramatica = models.CharField(max_length=250, null=True, blank=True)
pais = models.CharField(max_length=250, null=True, blank=True)

基本上我希望 userUpvotes 和 userDownvotes 现在显示在 word 管理员的对象页面上。但不确定我去哪里编辑该模板?还是在 admin.py 中?

或者删除显示此图像中所有 IpAddressObjects 的部分 issue

最佳答案

在 BrianDestura 的表扬之后,我能够使用如下添加的排除行更新我的管理模型

class PalabraAdmin(admin.ModelAdmin):
list_display = (
'nombre',
'aprobada',
'anonimo',
'get_post_action',
'definicion',
'ejemplo',
'gramatica',
'get_sinonimos',
'get_antonimos',
'pais',
'creado',
'get_user_username',
)
list_filter = (
'creado',
)
inlines = [TagInline]

exclude = ("userUpVotes", "userDownVotes")

关于python - 让 Django 管理对象页面显示更少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73422797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com