Size: a a a

Django [ru] #STAY HOME

2021 April 17

АЗ

Андрей Зиготов... in Django [ru] #STAY HOME
Наследование?
источник

Б

Богдан in Django [ru] #STAY HOME
Дошло, нужно было сделать
def __init__(self, *args, **kwargs): 
           super(UserRegistrationSerializer, self).__init__(*args, **kwargs)
           self.fields['aim'].queryset = Aim.objects.exclude(id__in=[7,4])


либо  

```aim = serializers.PrimaryKeyRelatedField(queryset=Aim.objects.exclude(id__in=[7,4]))```
источник

А

Аскар in Django [ru] #STAY HOME
И сделать потом 2 авторизации ? Или есть другой способ ?
источник

АЗ

Андрей Зиготов... in Django [ru] #STAY HOME
Если для авторизации используются разные поля, то никак по-другому не сделать я думаю, ищи какая в джанге базовая юзер модель, наследуй от нее и делай кастомные поля
источник

А

Аскар in Django [ru] #STAY HOME
Получается мне нужно 2 раза наследоваться ? Допусти админюзер будет модель и стаффюзер модель ?
источник

АЗ

Андрей Зиготов... in Django [ru] #STAY HOME
Ну или передавай в авторизацию разные поля
Def auth(un, pass):
Один пользователь передает свое поле username, а другой например mail, читай кароче какие есть функции у юзера в джанге
источник

АЗ

Андрей Зиготов... in Django [ru] #STAY HOME
Проще просто поставить булиевое поле is_stuff и все, хз в чем проблема в лишних полях
источник

Б

Богдан in Django [ru] #STAY HOME
Как вариант сделать для одной модели все нужные поля и поле is_writer, если True, то может писать посты. А при валидации проверять это поле, если True, то показывать доп. поля
источник

Б

Богдан in Django [ru] #STAY HOME
или is_stuff
источник

А

Аскар in Django [ru] #STAY HOME
Спасибо,проблема в том что там случай другой . Там у простого юзера я должен знать данные как имя, год рождения а админу этого всего не надо
источник

АЗ

Андрей Зиготов... in Django [ru] #STAY HOME
Ну оставляй пустыми, у тебя админов много, чтобы мучатся?
источник

Б

Богдан in Django [ru] #STAY HOME
у меня на проекте сейчас такое, если пользователь is_staff=True

то
```def __init__(self, data=None, *args, **kwargs):
   super(RegisterForm, self).__init__(data, *args, **kwargs)
   …
   if not User.objects.get(pk=id).is_stuff:
       self.fields['year'].required = True
       self.fields['code'].required = True
       self.fields['full_name'].required = True
       self.fields['phone'].required = True```
источник

А

Аскар in Django [ru] #STAY HOME
Только один обычный админ и потом простой юзер
источник

А

Аскар in Django [ru] #STAY HOME
До конца не понял, эти поля получается можно спросить при регистрации ?
источник

Б

Богдан in Django [ru] #STAY HOME
в моделе делаешь доп поля необязательными, но в самой форме переопределяешь инит метод, если пользователь is_stuff=False
то доп поля делаешь required=True
источник

А

Аскар in Django [ru] #STAY HOME
Или может эту логику сделать для фронта а у себя оставить как бланк тру ?🤔
источник

Б

Богдан in Django [ru] #STAY HOME
@who_areyou_n не понял?
источник

А

Аскар in Django [ru] #STAY HOME
Да понял кажется примерно, получается при регистрации во вьюшке могу эти поля сделать обязательными ?
источник

Б

Богдан in Django [ru] #STAY HOME
ты делаешь апи или обычную форму, которую в шаблон вставляешь?
источник

А

Аскар in Django [ru] #STAY HOME
Апи, шаблон будет на фронте
источник