@ma3xak

Не могу понять где ошибка?

Пытаюсь получить имя пользователя который отправил форму
Модель пользователя
class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(_('Рабочая почта'), unique=True )
    first_name = models.CharField(_('Имя'), max_length = 50, blank = False, null = True, default= None)#Имя юзверя
    last_name = models.CharField(_('Фамилия'),  max_length= 50, blank = False, null = True, default= None)#Фамилия пользователя
    otec_name = models.CharField(_('Отчество'),  max_length=50, blank= False, null = True, default=None) #Отчёчтво юзверя
    brith_day = models.DateField(_('Дата рождения'),  auto_now=False, auto_now_add=False, blank= False, null = True, default=None) #Дата рождения
    location = models.CharField(_('Полный адрес'),  max_length=200, default=None, blank=False, null=True) #Полный адрес
    #pol = models.CharField(verbose_name = "Пол", max_length=10, default=None, blank= False, null = True)
    serial_passport = models.CharField(_('Серия паспорта'),max_length= 4,  blank= False, null = True, default=None) #Серия паспорта
    number_passport = models.CharField(_('Номер паспорта'),max_length= 6,  blank= False, null = True, default=None) #Номер паспорта
    date_passport= models.DateField(_('Дата выдачи'),  auto_now=False, auto_now_add=False, blank= False, null = True, default=None) #Дата выдачи
    puntk_passport = models.CharField(_('Пункт выдачи'), max_length = 200, default=None, blank= False, null = True) #Пункт выдачи
    is_avtive = models.BooleanField(_('Активация'), default = True)
    phone = models.CharField(_('Номер телефона'),  max_length = 11, unique = True, default = None, blank = False, null = True)
    is_staff = models.BooleanField(_('Статус персонала'), default = True)

    objects = UserManager()


Связная модель
lass user_zaim(models.Model):

    STATUS_CHOICES = (
        ('В работе','В обработке'),
        ('Одобрено','Одобрена'),
        ('Отказано','Отказано'),
        )

    user_zaim  = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,  null=True, blank=True, default= None)
    date_zaim = models.DateTimeField(verbose_name="Дата займа",auto_now_add= True, auto_now=False)
    date_success =  models.DateTimeField(verbose_name="Дата погашения", auto_now=False,auto_now_add=False,  blank= True, null = True, default=None)
    summa_zaim = models.CharField(verbose_name="Сумма займа", max_length = 5, blank=False, null=True, default=None)
    platej = models.CharField(verbose_name="Количесвто платежей", max_length=1, blank=False, null=True, default = None)
    status = models.CharField(verbose_name = "Стату заявки", max_length = 50, blank=False, null= True,choices= STATUS_CHOICES, default="В обработке")

    class Meta:
        verbose_name = "Заявка на займ"
        verbose_name_plural = "Зявки на получение займа"


И админ.py
class AdminUserZaim(admin.ModelAdmin):
	def save_model(self, request, obj, form, change):
		obj.user_zaim = request.user
		super().save_model(request, obj, form, change)
	list_display = ['user_zaim', 'date_zaim', 'date_success', 'summa_zaim','platej', 'status']
	class Meta:
		model = user_zaim

admin.site.register(user_zaim, AdminUserZaim)
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
@vikholodov
user_zaim(models.Model)
user_zaim  = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,  null=True, 
blank=True, default= None)

Наведите порядок в нейминге. Классы так не именуются и тем более не должны совпадать с названием полей, запутаетесь. + уберите лишние пробелы
OneToOneField вам тут не подойдет, вангую, что займов для каждого юзера может быть несколько, вам нужно поле ForeignKey.
Как вы создаете объекты класса user_zaim?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы