Size: a a a

Django [ru] #STAY HOME

2021 February 12

Y

Yaroslav in Django [ru] #STAY HOME
DiZiNnEs
вроде нет, не надо, но на всякий случай попробуй
Не нужно
источник

A

Alex in Django [ru] #STAY HOME
Ребят. Кто-нибудь может объяснить, почему primary_key не устанавливает индекса? Хотя везде написано что primary_key по дефолту добавляет индекс в таблицу.

Второй вопрос, почему если я пытаюсь добавить db_index=True или unique=True, тоже индекс не добавляется.
Но как убираю primary_key, то индекс создается нормально.

Но если я попробую на primary_key поле добавить индекс через:
class Meta:
      indexes = [
           models.Index(fields=['first_name',]),
]

То индекс добавляется нормально, не смотря на то что поле primary_key. P.S.  Postgres база. Не могу найти объяснение этого кейса в интернете, везде пишется что должно работать.
источник

T

Table in Django [ru] #STAY HOME
new_imp = Ticket.objects.filter(implementer=user).filter(isnew_implementer='True').filter(status__in=["Open", "Complete"])
   new_dec = Ticket.objects.filter(declarant=user).filter(isnew_declarant='True').filter(status__in=["Open", "Complete"])

есть два вот таких запроса, но бывают объекты которые попадают и в один и в другой, можно ли как-то получить из 2х этих запросов список уникальных объектов, без повторений7
источник

NS

Nik S in Django [ru] #STAY HOME
Alex
Ребят. Кто-нибудь может объяснить, почему primary_key не устанавливает индекса? Хотя везде написано что primary_key по дефолту добавляет индекс в таблицу.

Второй вопрос, почему если я пытаюсь добавить db_index=True или unique=True, тоже индекс не добавляется.
Но как убираю primary_key, то индекс создается нормально.

Но если я попробую на primary_key поле добавить индекс через:
class Meta:
      indexes = [
           models.Index(fields=['first_name',]),
]

То индекс добавляется нормально, не смотря на то что поле primary_key. P.S.  Postgres база. Не могу найти объяснение этого кейса в интернете, везде пишется что должно работать.
primary key - просто автоматически id добавляет, как правило уникальный, и в базовой теории никакого отношения к индексу в целом не имеет.
primary_key - это циферные значения. не буквенные. Поэтому не надо на primare_key ложить текстовый индекс(если это вообще возможно)) хотябы в другое место пробовать, он отдельно где-то должен быть
источник

A

Alex in Django [ru] #STAY HOME
Nik S
primary key - просто автоматически id добавляет, как правило уникальный, и в базовой теории никакого отношения к индексу в целом не имеет.
primary_key - это циферные значения. не буквенные. Поэтому не надо на primare_key ложить текстовый индекс(если это вообще возможно)) хотябы в другое место пробовать, он отдельно где-то должен быть
поле Integer у меня. А по поводу индексации primary key пишут что создает https://stackoverflow.com/questions/42898988/is-primary-key-automatically-indexed-in-postgresql/50592983 по дефолту. И много где пишут.
источник

D

Doni in Django [ru] #STAY HOME
если я юзаю flower мои task'и обязаны что-то возвращать ???
источник

A

Alex in Django [ru] #STAY HOME
Но даже если не создает. То почему тогда primary_key=True, и db_index=True в связке не работают?
источник

NS

Nik S in Django [ru] #STAY HOME
Alex
Но даже если не создает. То почему тогда primary_key=True, и db_index=True в связке не работают?
ну значит особенность постгре.
primary_key=True делает потому что по идее одно,а db_index=True другое
если все работает без pk=True - зачем его выставлять?)
источник

Б

Богдан in Django [ru] #STAY HOME
можно в django debug toolbar выводить время работы отдельной части кода, а не только общее время выполнения? Если да, то как?
источник

NS

Nik S in Django [ru] #STAY HOME
HELP. Почему выдает ошибку
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
при попытке в INSTALLED_APPS вставить
'rest_framework_simplejwt.authentication.JWTAuthentication',
и сделать makemigrations
Трейсбек - https://dpaste.org/55es
источник

NS

Nik S in Django [ru] #STAY HOME
Nik S
HELP. Почему выдает ошибку
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
при попытке в INSTALLED_APPS вставить
'rest_framework_simplejwt.authentication.JWTAuthentication',
и сделать makemigrations
Трейсбек - https://dpaste.org/55es
он там чтото про User-a пишет, но что
источник

NS

Nik S in Django [ru] #STAY HOME
Nik S
HELP. Почему выдает ошибку
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
при попытке в INSTALLED_APPS вставить
'rest_framework_simplejwt.authentication.JWTAuthentication',
и сделать makemigrations
Трейсбек - https://dpaste.org/55es
Черт, я разобрался, это не app потому что! и я зря туда его вписал.
это настройка под дефолт для drf
источник

DT

Denis Taranov in Django [ru] #STAY HOME
Богдан
можно в django debug toolbar выводить время работы отдельной части кода, а не только общее время выполнения? Если да, то как?
непохоже что туда можно засунуть extra данные, если хотите именно отдебажить, а не выводить куда-то на панели дебаг тулбара, то ставите таймер в начальное место, в конечном месте ставите вывод/логирование, либо, как я обычно делаю - я написал декоратор для дебага функций и оборачиваю конкретные функции в декоратор, который замеряет время их выполнения
источник

Y

Yaroslav in Django [ru] #STAY HOME
Stanley
В модель можешь свойство добавить
@property
   def age(self):
       today = timezone.now()
       return today.year - self.date_birth.year - \
           ((today.month, today.day) < (self.date_birth.month, self.date_birth.day))
декоратор @property, тут лишний
источник

g

garrip91 in Django [ru] #STAY HOME
Как правильно обратиться к записи в БД из views.py: https://pastebin.com/Ej1fkfsF ?
источник

Б

Богдан in Django [ru] #STAY HOME
Denis Taranov
непохоже что туда можно засунуть extra данные, если хотите именно отдебажить, а не выводить куда-то на панели дебаг тулбара, то ставите таймер в начальное место, в конечном месте ставите вывод/логирование, либо, как я обычно делаю - я написал декоратор для дебага функций и оборачиваю конкретные функции в декоратор, который замеряет время их выполнения
спасибо, думал там есть метод, который позволяет замерять время выполнения отдельной части кода и выводить в блоке Time
источник

DT

Denis Taranov in Django [ru] #STAY HOME
вообще чтобы профилировать запросы к базе, я сначала тоже дебаг тулбаром пользовался - казалось удобнее, сейчас уже давно не тяну его за собой, а просто в логах запросы включаю и профилирую через "датагрип" в пайчарме
источник

Б

Богдан in Django [ru] #STAY HOME
попробую, спасибо:)
источник

NS

Nik S in Django [ru] #STAY HOME
Подскажите, а где посмотреть приличный код регистрации пользователей?
чтобы например не такой
def register(request):
   if request.method == "POST":
       username = request.POST["username"]
       email = request.POST["email"]
       password = request.POST["password"]
       confirmation = request.POST["confirmation"]

       if password != confirmation:
           return render(request, "commerce/register.html", {
               "message": "Passwords must match."
           })

       try:
           user = User.objects.create_user(username, email, password)
           user.save()
       except IntegrityError:
           return render(request, "commerce/register.html", {
               "message": "Username already taken."
           })
       login(request, user)
       return redirect('index')
   else:
       return render(request, "commerce/register.html")
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Nik S
Подскажите, а где посмотреть приличный код регистрации пользователей?
чтобы например не такой
def register(request):
   if request.method == "POST":
       username = request.POST["username"]
       email = request.POST["email"]
       password = request.POST["password"]
       confirmation = request.POST["confirmation"]

       if password != confirmation:
           return render(request, "commerce/register.html", {
               "message": "Passwords must match."
           })

       try:
           user = User.objects.create_user(username, email, password)
           user.save()
       except IntegrityError:
           return render(request, "commerce/register.html", {
               "message": "Username already taken."
           })
       login(request, user)
       return redirect('index')
   else:
       return render(request, "commerce/register.html")
почему не использовать встроеные ?
источник