Campo de modelo de administrador de Django configurado para el usuario actual

Tengo un modelo con campo:

class MyModel(models.Model): name = models.CharField(max_length=50) created_by = models.ForeignKeyField(User) 

En mi administrador:

 class MyModelAdmin(admin.ModelAdmin): list_display= ("name",) fields = ("name",) 

Aquí no quiero created_by en admin al agregar MyModel. Quiero que se configure al usuario actual como created_by = request.user

¿Cómo puedo hacer esto?

Gracias

Ya ha establecido fields para que created_by no aparezca en forma en el administrador de Django.

Ahora debe anular save_model y configurar el usuario antes de guardar nuevos objetos.

 class MyModelAdmin(admin.ModelAdmin): fields = ("name",) def save_model(self, request, obj, form, change): if not change: # the object is being created, so set the user obj.created_by = request.user obj.save() 

Para hacerlo, anule el método save_model y configure el campo created_by para el usuario actual.

 class MyModelAdmin(admin.ModelAdmin): list_display= ("name",) fields = ("name",) def save_model(self, request, obj, form, change): if not change: # can use this condition also to set 'created_by' # if not getattr(obj, 'created_by', None): obj.created_by = request.user obj.save()