Size: a a a

Django [ru] #STAY HOME

2020 January 20

DT

Dan Tyan in Django [ru] #STAY HOME
{% for comp in companies %}
   {% for cat in comp.category.all %}
      {{ cat }}
   {% endfor %}
{% endfor %}
источник

DT

Dan Tyan in Django [ru] #STAY HOME
это знавит что у каждой сомпании список категорий
источник

TC

Tom Cauf in Django [ru] #STAY HOME
Dan Tyan
это знавит что у каждой сомпании список категорий
про то, что это значит -  я в курсе. Я как-то про all пропустил. Спасибо за помощь!
источник

TC

Tom Cauf in Django [ru] #STAY HOME
Хотя странно, я по comp.category ожидал увидеть представление списка, как то, которое можно увидеть по простому companies
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Tom Cauf
Хотя странно, я по comp.category ожидал увидеть представление списка, как то, которое можно увидеть по простому companies
это особеность поля m2m

поле category ссылается не на объект а на менеджера модели

и чтобы получить данные необходимо запросить метод менеджера
источник

TC

Tom Cauf in Django [ru] #STAY HOME
Dan Tyan
это особеность поля m2m

поле category ссылается не на объект а на менеджера модели

и чтобы получить данные необходимо запросить метод менеджера
А менеджер подобен тому, что в Model.objects ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Tom Cauf
А менеджер подобен тому, что в Model.objects ?
да
источник

TC

Tom Cauf in Django [ru] #STAY HOME
Ок, еще раз спасибо!
источник

R

RAEman in Django [ru] #STAY HOME
Кто может помочь обьяснить как конкретно создаются кастомные колонки для юзера?
#models.py
from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
   user = models.OneToOneField(User, on_delete=models.CASCADE)
   sid = models.CharField(max_length=36)
   ISN = models.IntegerField()

#views.py
def auth(request, k_response = None):
   if request.user.is_authenticated:
       return redirect('../')
   else:
       if request.method == 'POST':
           if k_response is None:
               response = otherAuth(request.POST['Name'],request.POST['Psw'])
           if not response['error']:
               if username_present(request.POST['Name']):
                   print('user exists, login')
                   user = authenticate(username=request.POST['Name'], password=request.POST['Psw'])
                   if user is not None:
                       print('Success auth')
                       user.sid = response['sid']
                       user.ISN = response['ISN']
                       user.save()
                       login(request,user)
                       return redirect('../')
                       # A backend authenticated the credentials
                   else:
                       print('Oops')
                       # No backend authenticated the credentials
               else:
                   print('create user, login')
                   user = User.objects.create_user(request.POST['Name'], 'lol@temp.ru', request.POST['Psw'])
                   user.save()
                   auth(request,response)
           return render(request,'front/login.html',context =
           {
               'error_message':response['error'],
               'message':response['message'],
               'output':response['ISN'] + ' ' +response['sid'],
           })
   return render(request,'front/login.html')

Модельки в базе появились, но они не сохраняются после добавления пользователя и входа.
источник

TC

Tom Cauf in Django [ru] #STAY HOME
RAEman
Кто может помочь обьяснить как конкретно создаются кастомные колонки для юзера?
#models.py
from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
   user = models.OneToOneField(User, on_delete=models.CASCADE)
   sid = models.CharField(max_length=36)
   ISN = models.IntegerField()

#views.py
def auth(request, k_response = None):
   if request.user.is_authenticated:
       return redirect('../')
   else:
       if request.method == 'POST':
           if k_response is None:
               response = otherAuth(request.POST['Name'],request.POST['Psw'])
           if not response['error']:
               if username_present(request.POST['Name']):
                   print('user exists, login')
                   user = authenticate(username=request.POST['Name'], password=request.POST['Psw'])
                   if user is not None:
                       print('Success auth')
                       user.sid = response['sid']
                       user.ISN = response['ISN']
                       user.save()
                       login(request,user)
                       return redirect('../')
                       # A backend authenticated the credentials
                   else:
                       print('Oops')
                       # No backend authenticated the credentials
               else:
                   print('create user, login')
                   user = User.objects.create_user(request.POST['Name'], 'lol@temp.ru', request.POST['Psw'])
                   user.save()
                   auth(request,response)
           return render(request,'front/login.html',context =
           {
               'error_message':response['error'],
               'message':response['message'],
               'output':response['ISN'] + ' ' +response['sid'],
           })
   return render(request,'front/login.html')

Модельки в базе появились, но они не сохраняются после добавления пользователя и входа.
На сколько помню - наследоваться от абстрактного юзера, либо делать модель расширения с полем связи к юзеру 1к1
источник

R

RAEman in Django [ru] #STAY HOME
Tom Cauf
На сколько помню - наследоваться от абстрактного юзера, либо делать модель расширения с полем связи к юзеру 1к1
Модельку я сделал 1к1. А как потом записать данные в нее?
источник

TC

Tom Cauf in Django [ru] #STAY HOME
RAEman
Модельку я сделал 1к1. А как потом записать данные в нее?
А, блин, в глаза долблюсь, извиняй!
источник

TC

Tom Cauf in Django [ru] #STAY HOME
Как в обычную  - фильтруешь по id от основного юзера и редактируешь
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Tom Cauf
Как в обычную  - фильтруешь по id от основного юзера и редактируешь
зачем такая сложность с фильтрацией, в User должна появится встречная часть от 1:1 модели.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
@amureki @dantyan Могу я скинуть ссылку на видео по теме размешения кода бизнес логики в MVC и джанго? Думаю многим будет интересно.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Artem Gubatenko
@amureki @dantyan Могу я скинуть ссылку на видео по теме размешения кода бизнес логики в MVC и джанго? Думаю многим будет интересно.
думаю, да

и предложить PR в faq
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
https://www.youtube.com/watch?v=HpL6ymFEuu4

ну, если опытные программисты положительно оценят информацию из видео, то обязательно предложу PR
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
да, там в конце видео, автор немного прорекламировал свой модуль доставки, сорри за это, но мне кажется инфа про бизнес логику очень полезна
источник

AZ

Alla Zakharova in Django [ru] #STAY HOME
Вопрос. Нормальная ли практика по 20 раз редактировать один и тот же файл миграции?
Пример. Вот сделал миграцию, залил в репозиторий. Другие слили себе, работают, человек опять меняет миграцию и опять заливает и так до бесконечности.
источник

MI

Mickle Ivanov in Django [ru] #STAY HOME
Alla Zakharova
Вопрос. Нормальная ли практика по 20 раз редактировать один и тот же файл миграции?
Пример. Вот сделал миграцию, залил в репозиторий. Другие слили себе, работают, человек опять меняет миграцию и опять заливает и так до бесконечности.
нет
источник