Администратор Django предварительно скомпилирует поле с текущим вошедшим пользователем в форме добавления - PullRequest
0 голосов
/ 10 октября 2019

В моем приложении django у меня есть модель, подобная этой:

class temp_case(models.Model):
    id = models.AutoField(primary_key=True)
    main_id = models.ForeignKey(temp_main, related_name="tm_tc", on_delete=models.CASCADE, verbose_name="Main Template")
    descr = models.CharField(max_length=200, verbose_name="Case description")
    dt = models.DateTimeField(auto_now=True, verbose_name="Created")
    owner = models.ForeignKey('auth.User', related_name='tcase_owner', on_delete=models.CASCADE, verbose_name="API Owner")

Хорошо, когда я захожу в свой админ-интерфейс и добавляю строку, мне бы этот владелец поля (models.ForeignKey('auth.User', related_name='tcase_owner', on_delete=models.CASCADE, verbose_name="API Owner") автоматически выставлялся по умолчаниюзаполненный текущим вошедшим в систему пользователем, вместо этого выбирайте его каждый раз вручную.

Я должен управлять своим файлом admin.py? или прямо в модель?

заранее большое спасибо

1 Ответ

1 голос
/ 10 октября 2019

Перезаписать ModelAdmin.get_changeform_initial_data:

#admin.py
class TempCaseAdmin(models.ModelAdmin):

    def get_changeform_initial_data(self, request):
        return {'owner': request.user}

admin.site.register(temp_case, TempCaseAdmin)
...