¿Cómo editar campos editables = falsos en django admin?

Tengo algunos campos que no necesitan mostrarse al usuario, pero deben ser editables por el administrador en el panel de administración. La solución proporcionada por Manoj Govindan aquí solo muestra el campo en admin, pero después de guardar y volver al formulario en admin, los campos se vuelven a desactivar. estoy usando django 1.6.5

mis modelos.py

class Profile(models.Model):
    user = models.OneToOneField(User)

    picture1 = ImageWithThumbsField(_("Photo1"), upload_to="photos", null=True,
        blank=True, sizes=((150, 225),))
    picture1_confirm = models.NullBooleanField(null=True, editable=False)

    picture2 = ImageWithThumbsField(_("Photo2"), upload_to="photos", null=True,
        blank=True, sizes=((150, 225),))
    picture2_confirm = models.NullBooleanField(null=True, editable=False)

    picture3 = ImageWithThumbsField(_("Photo3"), upload_to="photos", null=True,
        blank=True, sizes=((150, 225),))
    picture3_confirm = models.NullBooleanField(null=True, editable=False)

y admin.py

class CustomProfileForm(forms.ModelForm):
    picture1_confirm = forms.BooleanField(required=False)
    picture2_confirm = forms.BooleanField(required=False)
    picture3_confirm = forms.BooleanField(required=False)

    class Meta:
        model = Profile
        fields = ('picture1', 'picture1_confirm', 'picture2', 'picture2_confirm',
            'picture3', 'picture3_confirm',)

class ProfileAdmin(admin.ModelAdmin):
    form = CustomProfileForm

admin.site.register(Profile, ProfileAdmin)

preguntado Oct 07 '14, 14:10

Entonces, ¿quiere que el campo esté en la aplicación y sea editable, pero no quiere que el usuario lo vea? Si es así lo estás haciendo mal. No deben configurarse para editable=False si necesita poder editarlos... Debe utilizar otro método, como un formulario personalizado que no contenga el campo para mostrar al usuario. -

¿Por qué fue posible hacer esto en django 1.2.3? ¿Por qué mi camino no arroja ninguna excepción entonces? -

No hay nada malo con el código, solo está tratando de configurar algo para que no sea editable y luego tratando de editarlo forzándolo a aparecer en la página de administración. En cuanto a las versiones, creo que en la 1.5 tal vez, hicieron formularios más estrictos, tienes que especificar qué campos quieres mostrar en un formulario por razones de seguridad para que los usuarios solo vean lo que se supone que deben ver. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.