Size: a a a

Django [ru] #STAY HOME

2020 May 06

NL

Nikita L in Django [ru] #STAY HOME
Dan Tyan
у одного игрока по одной игре может быть несколько статов?
Нет, только одна
источник

NL

Nikita L in Django [ru] #STAY HOME
Dan Tyan
задача немного не понятная

тебе нужно получить значение поля some_filed


по игре ты можешь получить список список игроков

у игрока ты можешь получить список статов
Вот когда Player уходит в шаблон, как у него там забрать нужную стату?
источник

NL

Nikita L in Django [ru] #STAY HOME
Это ListView условно
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikita L
Вроде как надо через annotate делать, но хз как поступить с фильтрацией PlayerStat по Game
не уверне, но может сработать:
players = (
   Player.objects
   .annotate(
       some_field=Case(
           When(
               playerstats_player__game__slug=<game_slug>,
               then=F("playerstats_player__some_field")
           ),
           default="",
           output_field=models.CharField()
       )
   )
)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikita L
Вроде как надо через annotate делать, но хз как поступить с фильтрацией PlayerStat по Game
только related_name по указывай в моделе
источник

NL

Nikita L in Django [ru] #STAY HOME
Artem Gubatenko
не уверне, но может сработать:
players = (
   Player.objects
   .annotate(
       some_field=Case(
           When(
               playerstats_player__game__slug=<game_slug>,
               then=F("playerstats_player__some_field")
           ),
           default="",
           output_field=models.CharField()
       )
   )
)
Спасибо, попробую
источник

NL

Nikita L in Django [ru] #STAY HOME
Artem Gubatenko
только related_name по указывай в моделе
Спасибо огромное, получилось
источник

NL

Nikita L in Django [ru] #STAY HOME
Заложил какую-то дикую архитектуру в проект и сам стрельнул себе в ногу
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikita L
Заложил какую-то дикую архитектуру в проект и сам стрельнул себе в ногу
бывает)
источник

NL

Nikita L in Django [ru] #STAY HOME
Artem Gubatenko
бывает)
Еще вопрос. Через F(‘’) можно как-то вытащить не одно поле, а весь объект сразу?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikita L
Еще вопрос. Через F(‘’) можно как-то вытащить не одно поле, а весь объект сразу?
нет
что за кейс?
источник

NL

Nikita L in Django [ru] #STAY HOME
Artem Gubatenko
нет
что за кейс?
Все тот же. Пытаюсь вытащить не одно поле some_field, а сразу весь объект PlayerStat
источник

NL

Nikita L in Django [ru] #STAY HOME
Чтобы не писать annotate на каждое поле в нем
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikita L
Все тот же. Пытаюсь вытащить не одно поле some_field, а сразу весь объект PlayerStat
БД не знает о твоих объектах, так что нужно по другому
попробуй зайти от другой модели в этой связке
источник

NL

Nikita L in Django [ru] #STAY HOME
Artem Gubatenko
БД не знает о твоих объектах, так что нужно по другому
попробуй зайти от другой модели в этой связке
Ок, попробу. Спасибо
источник

V

Vitaly in Django [ru] #STAY HOME
Добрый вечер. Нужна помощь. Вопрос по джанго моделям\формам. Пытаюсь сделать форму регистрации. Основная проблема в том, что мои юзеры, по задумке, должны регистрироваться и логиниться через email. В стандартной модели django User username обязательное поле. Для этого я создал модель User, которая наследуется от AbstractUser. AUTH_USER_MODEL = 'users.User' в настройках включил

models.py

'from django.db import models
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
pass'

forms.py

'from django import forms
from .models import User

class RegisterForm(forms.ModelForm):
username = forms.CharField(max_length=100, required=False)
email = forms.EmailField(label='', max_length=100, widget=forms.TextInput(attrs={'placeholder': 'email@example.com'}))
password = forms.CharField(label='', max_length=100, widget=forms.PasswordInput(attrs={'placeholder': 'Password'}))

class Meta:
 model = User
 fields = ['email', 'password']'

Когда пытаюсь зарегистрировать нового user'a выскакивает ошибка


'UNIQUE constraint failed: users_user.username'

Что делать?
источник

V

Vitaly in Django [ru] #STAY HOME
Блин, неправильно оформил пост. Строго не судите 🙂
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Vitaly
Добрый вечер. Нужна помощь. Вопрос по джанго моделям\формам. Пытаюсь сделать форму регистрации. Основная проблема в том, что мои юзеры, по задумке, должны регистрироваться и логиниться через email. В стандартной модели django User username обязательное поле. Для этого я создал модель User, которая наследуется от AbstractUser. AUTH_USER_MODEL = 'users.User' в настройках включил

models.py

'from django.db import models
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
pass'

forms.py

'from django import forms
from .models import User

class RegisterForm(forms.ModelForm):
username = forms.CharField(max_length=100, required=False)
email = forms.EmailField(label='', max_length=100, widget=forms.TextInput(attrs={'placeholder': 'email@example.com'}))
password = forms.CharField(label='', max_length=100, widget=forms.PasswordInput(attrs={'placeholder': 'Password'}))

class Meta:
 model = User
 fields = ['email', 'password']'

Когда пытаюсь зарегистрировать нового user'a выскакивает ошибка


'UNIQUE constraint failed: users_user.username'

Что делать?
переопредели поле username, сделай его не обязательным, тогда constraint мешать не будет
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Vitaly
Добрый вечер. Нужна помощь. Вопрос по джанго моделям\формам. Пытаюсь сделать форму регистрации. Основная проблема в том, что мои юзеры, по задумке, должны регистрироваться и логиниться через email. В стандартной модели django User username обязательное поле. Для этого я создал модель User, которая наследуется от AbstractUser. AUTH_USER_MODEL = 'users.User' в настройках включил

models.py

'from django.db import models
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
pass'

forms.py

'from django import forms
from .models import User

class RegisterForm(forms.ModelForm):
username = forms.CharField(max_length=100, required=False)
email = forms.EmailField(label='', max_length=100, widget=forms.TextInput(attrs={'placeholder': 'email@example.com'}))
password = forms.CharField(label='', max_length=100, widget=forms.PasswordInput(attrs={'placeholder': 'Password'}))

class Meta:
 model = User
 fields = ['email', 'password']'

Когда пытаюсь зарегистрировать нового user'a выскакивает ошибка


'UNIQUE constraint failed: users_user.username'

Что делать?
*в своей модели
источник

V

Vitaly in Django [ru] #STAY HOME
Artem Gubatenko
переопредели поле username, сделай его не обязательным, тогда constraint мешать не будет
Я извинясь, а как? Я уже, честно сказать, всю голову сломал
источник