Мне в одну из таблиц нужно добавить уникальное поле, когда делаю миграции как можно сделать так чтоб в данные которые уже существуют это поле автоматом заполнилось с уникальным значением?

|
LUBASKIN_CODE 2022-07-02 19:38:00
понял, спасибо большое
LUBASKIN_CODE 2022-07-02 19:38:48
а если допустим выводить айдишники и принимать тоже айдишники, мне нужно простое Integer поле, и потом валидировать его?
LUBASKIN_CODE 2022-07-02 19:40:32
LUBASKIN_CODE 2022-07-02 19:38:48
а если допустим выводить айдишники и принимать тоже айдишники, мне нужно простое Integer поле, и потом валидировать его?

а не, мне тогда PrimaryKeyRelatedField нужен

dantyan 2022-07-02 19:40:47
LUBASKIN_CODE 2022-07-02 19:40:32
а не, мне тогда PrimaryKeyRelatedField нужен

да

LUBASKIN_CODE 2022-07-02 19:40:54
ладно, попробую написать свою логику to_representation
Максим 2022-07-02 19:48:59
pydjango-738897.jpg
имею два пермишена
во вьюхе использую так permission_classes = [IsOwnerOrReadOnly | IsModerator]
но почему пользователь не являющиеся создателем отзыва все равно может ее редактировать. не пойми почему
mihalt 2022-07-02 19:54:27
Подскажите, пожалуйста, почему формат лейбла в Enumeration types дан именно такой? _(‘Freshman’). Почему не просто ‘Freshman’ или по крайней мере (‘Freshman’,)?
https://docs.djangoproject.com/en/4.0/ref/models/fields/#enumeration-types
Максим 2022-07-02 19:56:56
mihalt 2022-07-02 19:54:27
Подскажите, пожалуйста, почему формат лейбла в Enumeration types дан именно такой? _(‘Freshman’). Почему не просто ‘Freshman’ или по крайней мере (‘Freshman’,)?
https://docs.djangoproject.com/en/4.0/ref/models/fields/#enumeration-types

погугли импорт этого метода from django.utils.translation import gettext_lazy as _

Максим 2022-07-02 19:59:21
mihalt 2022-07-02 19:54:27
Подскажите, пожалуйста, почему формат лейбла в Enumeration types дан именно такой? _(‘Freshman’). Почему не просто ‘Freshman’ или по крайней мере (‘Freshman’,)?
https://docs.djangoproject.com/en/4.0/ref/models/fields/#enumeration-types

как я понимаю это связано с интерактивностью выбора и перевода разных языков

Dem0rey 2022-07-02 20:42:26
pydjango-738902.jpg

Dem0rey 2022-07-02 20:42:26
pydjango-738901.jpg
Можно ли как то вывести при помощи формсета в столбец Активность чекбоксы Вкл/Выкл для каждой строки? coms это как раз объекты бд переданные в формсет, или может можно вывести данные перебирая формсет не в виде полей ввода?
{{ item in formset.forms|command_activity }} — моя попытка перебрать формсет
daniilka_dadada 2022-07-02 20:46:07
Добрый вечер вопрос, если я буду использовать бд мне не нужна будет админка как я понимаю, или я делаю миграцию в муsql и потом миграции в самой джанго для админки
объясните в кратце, видео и документации я чот н нашел, заранее спасибо
LUBASKIN_CODE 2022-07-02 20:50:31
LUBASKIN_CODE 2022-07-02 19:33:52
ВОТ, меня интересует как на чтение отдавать тайтлы, а на запись принимать айдишники

@dantyan спасибо огромное, я по вашему совету сделал кастомное поле, вот что в итоге получилось: http://linkode.org/#hvNENWopr2TBm2yTLbtDE, если кто то еще с этим столкнется

AndyBagrov 2022-07-02 20:56:47
daniilka_dadada 2022-07-02 20:46:07
Добрый вечер вопрос, если я буду использовать бд мне не нужна будет админка как я понимаю, или я делаю миграцию в муsql и потом миграции в самой джанго для админки
объясните в кратце, видео и документации я чот н нашел, заранее спасибо

Эм…..еще раз….админка она все равно по дефолту будет, просто без миграций и указании этих данных в model.py, у тебя в джанге ничего работать не будет

AndyBagrov 2022-07-02 20:59:23
Ты можешь миграции даже не делать, если в бд указано все, но модели соответствующие все равно должны быть
AndyBagrov 2022-07-02 20:59:34
Иначе их не зарегаешь в админке
AndyBagrov 2022-07-02 21:06:16
LUBASKIN_CODE 2022-07-02 20:50:31
@dantyan спасибо огромное, я по вашему совету сделал кастомное поле, вот что в итоге получилось: http://linkode.org/#hvNENWopr2TBm2yTLbtDE, если кто то еще с этим столкнется

if not Tag.objects.filter(id__in=value).count() == len(value):
raise serializers.ValidationError(‘Tag does not exists!’)
Ты проверяешь наличие запросов в кварисете этим кодом?

LUBASKIN_CODE 2022-07-02 21:06:26
AndyBagrov 2022-07-02 21:06:16
if not Tag.objects.filter(id__in=value).count() == len(value):
raise serializers.ValidationError(‘Tag does not exists!’)
Ты проверяешь наличие запросов в кварисете этим кодом?

да

AndyBagrov 2022-07-02 21:06:55
LUBASKIN_CODE 2022-07-02 21:06:26
да

if not Tag.objects.filter(id__in=value).exists()

LUBASKIN_CODE 2022-07-02 21:07:22
AndyBagrov 2022-07-02 21:06:55
if not Tag.objects.filter(id__in=value).exists()

нет , не сработает

LUBASKIN_CODE 2022-07-02 21:07:39
если среди тэгов будет хоть 1 правильный айдишник исключение уже не поднимется
AndyBagrov 2022-07-02 21:10:33
LUBASKIN_CODE 2022-07-02 21:07:39
если среди тэгов будет хоть 1 правильный айдишник исключение уже не поднимется

Not убери тогда

AndyBagrov 2022-07-02 21:11:09
И получается, если по value хоть 1 id будет, то бросает зайдет дальше
LUBASKIN_CODE 2022-07-02 21:11:17
мне нужно что бы каждый тэг существовал
AndyBagrov 2022-07-02 21:13:34
LUBASKIN_CODE 2022-07-02 21:11:17
мне нужно что бы каждый тэг существовал

Ну ок, значит я твою логику недопонял

One_of_the_Stoics 2022-07-02 21:14:22
LUBASKIN_CODE 2022-07-02 21:11:17
мне нужно что бы каждый тэг существовал

Tag.objects.filter(id__in=value).count() != len(value)

LUBASKIN_CODE 2022-07-02 21:14:37
One_of_the_Stoics 2022-07-02 21:14:22
Tag.objects.filter(id__in=value).count() != len(value)

я уже сделал так давно

One_of_the_Stoics 2022-07-02 21:14:46
Tag.objects.filter(id__in=value).count() < len(value)
top_piar_support 2022-07-02 21:30:35
Ребят здраствуйте. У меня есть уже база данных там есть данные. Мне в одну из таблиц нужно добавить уникальное поле, когда делаю миграции как можно сделать так чтоб в данные которые уже существуют это поле автоматом заполнилось с уникальным значением?
top_piar_support 2022-07-02 21:30:58
короче как сделать миграцию когда в таблицу нужно довать новое поле а данные в базе уже есть)
Gosha Barinov 2022-07-02 22:00:07
Можно дефолтное значение выставить к примеру, если поле обязательное
Gosha Barinov 2022-07-02 22:00:54
Либо если необязательное — заполнить по надобности после миграции
bbclub123 2022-07-02 22:18:37
top_piar_support 2022-07-02 21:30:58
короче как сделать миграцию когда в таблицу нужно довать новое поле а данные в базе уже есть)

Ничего не понятно)
Дефолтное поле, а если есть данные то это уже другое (inspectdb)

AndyBagrov 2022-07-02 22:19:02
top_piar_support 2022-07-02 21:30:35
Ребят здраствуйте. У меня есть уже база данных там есть данные. Мне в одну из таблиц нужно добавить уникальное поле, когда делаю миграции как можно сделать так чтоб в данные которые уже существуют это поле автоматом заполнилось с уникальным значением?

Ну самое простое, сперва сделай makemigrations, у тебя появится файл с миграцией в папке migrations, в этом файле ты можешь написать скрипт, который после команды migrate нанесет схему в бд и отработает скрипт на заполнение этих данных. Посмотри в доке, типа как в файле прописать скрипт на заполнение

AndyBagrov 2022-07-02 22:22:53
top_piar_support 2022-07-02 21:30:35
Ребят здраствуйте. У меня есть уже база данных там есть данные. Мне в одну из таблиц нужно добавить уникальное поле, когда делаю миграции как можно сделать так чтоб в данные которые уже существуют это поле автоматом заполнилось с уникальным значением?

https://stackoverflow.com/questions/39739439/how-to-define-default-data-for-django-models

How to define default data for Django Models?Stack Overflow
I want my application to have default data such as user types.
What’s the most efficient way to manage default data after migrations?
It needs to handle situations such as, after I add a new table,…
AndyBagrov 2022-07-02 22:23:25
Надеюсь поможет
AndyBagrov 2022-07-02 22:25:02
А насчет уникальных значений можешь использовать инкремент, либо uuid
AndyBagrov 2022-07-02 22:37:39
Либо как другие рекомендуют в default засунуть скрипт на генерацию уникальных значений, тот же uuid
someonecoding 2022-07-02 23:01:14
Привет, есть джанго проект и ещё один сторонний апп который лежит в той же директории, мне надо в тот апп експортнуть настройки джанго, как это можно сделать?
Если конкретнее то надо что бы заработал извне from django.contrib.auth.password_validation import validate_password
top_piar_support 2022-07-02 23:04:54
У меня была база данных я удалил не нужную таблицу в приложении к которому принадлежит эта таблица я удалил все миграции. Когда пишу makemigrations он создаёт новый фал с 0001.initial.py
Я пише потом migrate, он мне говорит No migrations to apply.
Почему так?
idandrey 2022-07-02 23:05:48
Потому что таблицы через миграции удалять надо
top_piar_support 2022-07-02 23:06:37
блин…. и что теперь делать?
someonecoding 2022-07-02 23:06:43
top_piar_support 2022-07-02 23:04:54
У меня была база данных я удалил не нужную таблицу в приложении к которому принадлежит эта таблица я удалил все миграции. Когда пишу makemigrations он создаёт новый фал с 0001.initial.py
Я пише потом migrate, он мне говорит No migrations to apply.
Почему так?

py manage.py migrate appname

top_piar_support 2022-07-02 23:07:19
someonecoding 2022-07-02 23:06:43
py manage.py migrate appname

так тоже не работает

someonecoding 2022-07-02 23:07:25
что пишет?
top_piar_support 2022-07-02 23:08:04
No migrations to apply.
AndyBagrov 2022-07-02 23:09:23
Вообще это плохая практика, если у тебя важных данных нет в бд, то снеси бд и заново все сделай
top_piar_support 2022-07-02 23:09:45
ок
top_piar_support 2022-07-02 23:09:56
спс
AndyBagrov 2022-07-02 23:12:21
top_piar_support 2022-07-02 23:08:04
No migrations to apply.

А вообще на будущее, если тебе надо удалить поле или таблицу в бд, то удаляй это в models.py и делай makemigrations, а потом migrate. Тогда ты миграцией из джанги внесешь в бд, и не удаляй миграции

|