¿Cómo puedo configurar una combinación de modelo/formulario para que el campo en el modelo se inicialice en un valor fijo y no se muestre ningún elemento de formulario cuando se presente el formulario al usuario?
Solo quiero inicializar Source.updated = datetime.datetime(2000, 1, 1, 0, 0, 0, 0) cada vez que se crea una nueva Source desde un formulario. El usuario no puede anular este valor predeterminado inicial. (La interacción posterior con la aplicación hará que el valor de este campo cambie, pero no es solo auto_now porque quiero que el valor inicial esté en el pasado).
lo que tengo ahora es
class Source(Model): name = models.CharField(max_length=168, help_text="Source name") link = models.URLField(primary_key=True, help_text="Data source link") type = models.CharField(max_length=64, help_text="Data source type") # TODO: add this field to the model. # have it initialize to 2000-01-01 #updated = models.DateTimeField(help_text="Most recent time this source has been updated") class SourcesForm(forms.ModelForm): class Meta: model = models.Source fields = ['name', 'link', 'type',] # TBD: how to configure the form so that # it initializes the "updated" field with a fixed value # when .save() is calledLa lógica que estoy tratando de implementar es que: estamos obteniendo datos de una fuente remota, por lo que quiero saber cuándo fue la última vez que se actualizaron estos datos.
Puede configurar editable=False [Django-doc] para evitar que el campo se muestre en ModelForm s, ModelAdmin , etc.:
from datetime import datetime class Source(Model): # … updated = models.DateTimeField( editable=False, default=datetime(2000, 1, 1) , help_text="Most recent time this source has been updated")