Necesito crear un modelo de Django que el administrador no pudo, pero debería estar disponible para verlo. Su contenido será ingresado desde el sitio. ¿Cómo puedo hacerlo?
3 respuestas
Designe que debe ser de solo lectura
En su administrador de modelos, puede especificar que ciertos campos no se modifiquen.
class ProfileAdmin(admin.ModelAdmin):
readonly_fields = ('source', 'campaign')
Simplemente colóquelo en su admin.py y luego, cuando pueda registrar su sitio, use esto:
admin.site.register(Profile, ProfileAdmin)
En lugar de lo que probablemente esté usando actualmente, que sería
admin.site.register(Profile)
Puede enumerar los campos que desee en ambos fields
y readonly_fields
.
class AuthorAdmin(admin.ModelAdmin):
fields = ('name', 'title')
readonly_fields = ('name', 'title')
Básicamente, si desea deshabilitar la editabilidad del modelo, puede hacer uso del marco de permisos de Django Admin, de esta manera:
class PersonAdmin
def has_change_permission(self, request, obj=None):
# only allows superusers to edit
return request.user.is_superuser
También puede probar el readonly_field como:
class PersonAdmin
readonly_fields = ('name','sex',)
Pero el problema de hacer esto es que verá los botones de guardar en la página de edición a pesar de que no se permite cambiar nada, lo que probablemente no sea lo que desea
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.