#python #django
#python #django
Вопрос:
Я хочу создать несколько объектов непосредственно в панели администратора Django, и в этом объекте автоматически сохранить имя пользователя администратора, который его создавал.
Любые предложения о том, как сделать это самым простым способом?
Приветствия,
Питер
class UserMessage(models.Model):
reciever_id = models.OneToOneField(
User,
on_delete=models.CASCADE,
primary_key=True,
)
heading = models.CharField(max_length=60)
message = models.TextField(blank=True)
time_created = models.DateTimeField(auto_now_add=True)
creator_id = models.ForeignKey(User)
Комментарии:
1. Есть какой-либо код, показывающий, что ваш models.py и admin.py как выглядит?
2. Добавил его в описание сообщения, чтобы сделать его немного более читаемым
Ответ №1:
Вам нужно добавить save_model
метод в ваш администратор модели:
def save_model(self, request, obj, form, change):
if not obj.creator_id: # if obj does not have a creator
obj.creator_id = request.user
super().save_model(request, obj, form, change)
Подробнее здесь