Вопросы с тегами [django-models]

674

голосов
12

ответ
167.4k

Просмотры

дифференцировать нуль = True, пусто = True в Джанго

Когда мы добавим поле базы данных в Django мы обычно пишем models.CharField (max_length = 100, нуль = True, пустой = True). То же самое происходит с ForeignKey, DecimalField и т.д. Какова основная разница в том, нуль = True только пустой = True только нуль = True, пусто = True в отношении различных полей (CharField, ForeignKey, ManyToManyField, DateTimeField). Каковы преимущества / недостатки использования 1/2/3?
user993563
535

голосов
13

ответ
269.5k

Просмотры

Как сделать не равны в Django фильтрации QuerySet?

В модели QuerySets Django, я вижу, что есть __gt и __lt для Сравнительное значений, но есть __ne / = / (не равно?) Я хочу, чтобы отфильтровать с помощью не равна: Пример: Модель: BOOL а; ИНТ х; Я хочу, чтобы результаты = Model.objects.exclude (а = истинное, х! = 5)! = Не правильный синтаксис. Я попытался __ne,. Я закончил с использованием: результаты = Model.objects.exclude (а = верно, x__lt = 5) .exclude (а = верно, x__gt = 5)
MikeN
432

голосов
9

ответ
116.6k

Просмотры

Что такое «слизняк» в Django?

Когда я прочитал Django код, который я часто вижу в модели, что называется «слизняк». Я не совсем уверен, что это такое, но я знаю, что это что-то делать с URL. Как и когда это слизня, что предполагается использовать? (Я прочитал его определение в этом словаре.)
Jonas
381

голосов
6

ответ
271.7k

Просмотры

Фильтрация пустых или NULL имен в QuerySet

У меня есть first_name, last_name & псевдоним (опционально), который мне нужно искать. Итак, мне нужен запрос, чтобы дать мне все имена, которые имеют множество псевдонимов. Только если я мог бы сделать: Name.objects.filter (! Псевдоним = «») Итак, что эквивалентно выше?
un33k
292

голосов
6

ответ
77.3k

Просмотры

В чем разница между Джанго OneToOneField и ForeignKey?

В чем разница между Джанго OneToOneField и ForeignKey?
redice
276

голосов
1

ответ
74.4k

Просмотры

Как определить два поля «уникальный», как пара

Есть ли способ, чтобы определить несколько полей, уникальным в Django? У меня есть таблица объемов (журналов), и я не хочу, номер более чем один объем для того же журнала. Класс Volume (models.Model): идентификатор = models.AutoField (primary_key = True) journal_id = models.ForeignKey (Журналы, db_column = 'JID', нуль = True, verbose_name = "Журнал") VOLUME_NUMBER = models.CharField ( 'Volume Число», mAX_LENGTH = 100) комментарии = models.TextField ( 'Комментарии', max_length = 4000, пустой = True) Я попытался поставить уникальный = True в качестве атрибута в полях journal_id и VOLUME_NUMBER, но он не работает.
Giovanni Di Milia
230

голосов
22

ответ
118.1k

Просмотры

Джанго: При сохранении, как можно проверить, если поле изменилось?

ContentFile (buf.getvalue ())), за исключением IOError: проход, который отлично работает в первый раз, когда изменяется remote_image. Как я могу принести новый образ, когда кто-то изменил remote_image на псевдоним? А во-вторых, есть лучший способ кэшировать удаленный файл?
Paul Tarjan
207

голосов
12

ответ
170.7k

Просмотры

Джанго auto_now и auto_now_add

Для Django 1.1. У меня это в моем models.py: класс User (models.Model): создано = models.DateTimeField (auto_now_add = True) модифицирована = models.DateTimeField (auto_now = True) При обновлении строки я получаю: [Вс ноя 15 02: 18:12 2009] [ошибка] /home/ptarjan/projects/twitter-meme/django/db/backends/mysql/base.py:84: Внимание: Колонка «создана» не может быть пустым [вс 15 ноября 2:18: 12 2009] [ошибка] возвращение self.cursor.execute (запрос, арг) соответствующая часть моей базы данных: `created` DateTime NOT NULL,` modified` DateTime NOT NULL, является ли это причиной для беспокойства? Боковой вопрос: в моем администратора инструмент, эти два поля не отображаются. Это как ожидается?
Paul Tarjan
205

голосов
6

ответ
36.6k

Просмотры

Django - Как переименовать поле модели с использованием Юга?

Я хотел бы изменить название конкретных полей в модели: класс Foo (models.Model): имя = models.CharField () отн = models.ForeignKey (Bar) должен измениться: класса Foo (models.Model): FULL_NAME = models.CharField () odd_relation = models.ForeignKey (Bar) Какой самый простой способ сделать это, используя Юг?
Jonathan
203

голосов
10

ответ
91.1k

Просмотры

Как клонировать объект Django экземпляра модели и сохранить его в базу данных?

Foo.objects.get (рк = «Foo») В базе данных, я хочу добавить еще один объект, который является копией объекта выше. Предположим, что моя таблица имеет одну строку. Я хочу, чтобы вставить первый объект строки в другую строку с другим первичным ключом. Как я могу это сделать?
user426795
177

голосов
5

ответ
187.5k

Просмотры

запрос к базе данных Django: Как отфильтровать объекты по диапазону дат?

У меня есть поле в одной модели, как образец класса (models.Model): дата = fields.DateField (auto_now = False) Теперь мне нужно отфильтровать объекты по диапазону данных, например, все объекты, которые есть дата между 1 января 2011 по 31 января 2011? Спасибо за вашу помощь!
user469652
175

голосов
4

ответ
160.5k

Просмотры

Как удалить запись в модели Django?

Я хочу, чтобы удалить конкретную запись. Такие, как исключить из table_name, где ID = 1; Как я могу это сделать в модели Django?
user426795
169

голосов
14

ответ
110.8k

Просмотры

Программное сохранение изображения Джанго ImageField

Хорошо, я попытался о вблизи все и я не могу получить эту работу. У меня есть модель Django с ImageField на нем У меня есть код, который загружает изображение через HTTP (протестировано и работает) Изображение сохраняется непосредственно в папку «upload_to» (The upload_to будучи один, который устанавливается на ImageField) Все, что я нужно сделать, это ассоциировать уже существующий путь к файлу изображения с ImageField я написал этот код около 6 различных способов. Проблема я бегу в весь код, который я пишу результаты в следующем поведении: (1) Django будет сделать 2-й файл, (2) переименовать новый файл, добавив _ в конец файла имя, затем (3) не передавать какие-либо из данных по выходе его в основном пустой переименованный файл. То, что осталось в «upload_to» пути является 2 файлом, один, который является реальным изображением, и один, что это имя образа, но пуст, и, конечно, путь ImageField установлен в пустой файл, который Django попытаться создать. В случае, когда было неясно, я постараюсь показать: ## генерации кода изображения работает .... / Загрузить generated_image.jpg 4kb ## Попытка установить путь Imagefield ... / Upload generated_image.jpg 4kb generated_image_.jpg 0Kb ImageField.Path = /Upload/generated_image_.jpg Как я могу сделать это без Django попытаться повторно сохранить файл? То, что я бы очень хотел что-то на этот счет ... model.ImageField.path = generated_image_path ... но, конечно, не работает. И да я прошел через другие вопросы здесь, как это, а также Джанго документ на File UPDATE После дальнейшего тестирования, он только делает это поведение при запуске под Apache на Windows Server. Во время работы под «runserver» на XP он не выполняет это поведение. Я в тупике. Вот код, который успешно работает на XP ... F = открытого (thumb_path, 'г') model.thumbnail = File (е) model.save ()
T. Stone
164

голосов
2

ответ
68.4k

Просмотры

В чем разница между select_related и prefetch_related в Django ORM?

В Django документ, select_related () «следует» внешнего ключа отношения, выбор дополнительных данных, связанных с-объекта, когда он выполняет свой запрос. prefetch_related () делает отдельный поиск для каждого отношения, и делает «присоединение» в Python. Что это значит, «делая присоединение в питон»? Может кто-то проиллюстрировать на примере? Я понимаю, что для внешнего ключа отношения, использование select_related; и для M2M отношений, использование prefetch_related. Это правильно?
NeoWang
164

голосов
6

ответ
32.5k

Просмотры

Джанго: Почему некоторые модели поля сталкиваются друг с другом?

Я хочу, чтобы создать объект, который содержит 2 ссылки на пользователей. Например: класс GameClaim (models.Model): цель = models.ForeignKey (Пользователь) взыскатель = models.ForeignKey (Пользователь) isAccepted = models.BooleanField (), но я получаю следующие ошибки при запуске сервера: Accessor для поля ' «столкновение с соответствующей областью„целевая User.gameclaim_set“. Добавьте related_name аргументого определения для «целей». Accessor для столкновений поля «взыскателя» с соответствующей областью "User.gameclaim_set. Добавьте related_name аргумент в определение для «претендента». Можете ли вы объяснить, почему я получаю ошибки и как их исправить?
Oleg Tarasenko
156

голосов
8

ответ
130.8k

Просмотры

Самый быстрый способ получить первый объект из QuerySet в Джанго?

Часто я ловлю себя на желании, чтобы получить первый объект из QuerySet в Django, или не возвращать None, если их нет. Есть много способов сделать это, какую всю работу. Но я задаюсь вопросом, который является наиболее производительным. QS = MyModel.objects.filter (бла = бла), если qs.count ()> 0: возвращение в достаточном количестве [0] еще: возвращение Нет ли этот результат в двух обращений к базе данных? Это кажется расточительным. Является ли это быстрее? QS = MyModel.objects.filter (бла = бла), если LEN (QS)> 0: возвращение в достаточном количестве [0] еще: не возвращать None Другой вариант: QS = MyModel.objects.filter (бла = бла) попробовать: возвращение QS [0], за исключением IndexError: возвращение нет Это не генерирует один вызов базы данных, что хорошо. Но требует создания исключения объекта много времени, что очень много памяти, что нужно сделать, когда все, что вам действительно нужно, это тривиально, если тест.
Leopd
151

голосов
5

ответ
75.5k

Просмотры

что делает on_delete сделать на модели Django?

Я хорошо знаком с Django, но в последнее время заметил, что существует on_delete = models.CASCADE вариант с моделями, я искал документацию для того же, но не смогли найти ничего больше, чем: Изменено в Django 1.9: on_delete теперь может можно использовать в качестве второго аргумента позиционного (ранее она была, как правило, передается только в качестве аргумента ключевого слова). Это будет обязательный аргумент в Django 2.0. пример случай использования от django.db импортных моделей класса Car (models.Model): производитель = models.ForeignKey ( 'Производитель', on_delete = models.CASCADE,) # ... Производитель класса (models.Model): # ... проходить Что on_delete делать? (Я предполагаю, что действия, которые должны быть сделано, если модель будет удалена) Что делает модель. КАСКАД делать? (любые намеки в документации) Какие другие варианты доступны (если мое предположение верно)? Где документация для этого проживает?
Marty
150

голосов
13

ответ
62.2k

Просмотры

Как вытащить случайную запись, используя ОРМ Джанго?

У меня есть модель, которая представляет картины, которые я представляю на моем сайте. На главной странице я хотел бы показать некоторые из них: новейший, тот, который не побывал на большую часть времени, один из самых популярных и случайной. Я использую Django 1.0.2. В то время как первые три из них легко тянуть с использованием моделей Джанго, последний один (случайный) вызывает у меня некоторые проблемы. Я могу OFC код это, на мой взгляд, что-то вроде этого: number_of_records = models.Painting.objects.count () random_index = INT (random.random () * number_of_records) +1 random_paint = models.Painting.get (рк = random_index ) Он не похож на то, что я хотел бы иметь на мой взгляд Тхо - это полностью часть абстракции базы данных и должна быть в модели. Кроме того, здесь мне нужно заботиться о удаленных записей (то количество всех записей не будет охватывать меня все возможные ключевые значения) и, вероятно, много других вещей.
kender
148

голосов
9

ответ
96.6k

Просмотры

Convert Django Model object to dict with all of the fields intact

Как можно преобразовать объект Джанго модели в Словарь со всеми его полями? Все идеально включает в себя внешние ключи и поле с редактируемым = False. Позвольте мне остановиться. Скажем, у меня есть модель Джанго вроде следующего: от django.db импортных моделей класса OtherModel (models.Model): класс пас SomeModel (models.Model): значение = models.IntegerField () значение2 = models.IntegerField (редактируемые = False ) создано = models.DateTimeField (auto_now_add = True) reference1 = models.ForeignKey (OtherModel, related_name = "ref1") reference2 = models.ManyToManyField (OtherModel, related_name = "ref2") В терминале, я сделал следующее: other_model = OtherModel () other_model.save () экземпляр = SomeModel () instance.value = 1 instance.value2 = 2 instance.reference1 = other_model instance.save () instance.reference2.
Zags
140

голосов
10

ответ
102.7k

Просмотры

Джанго: Получить список модельных полей?

Я определил класс пользователя, который (в конечном счете) наследуется от models.Model. Я хочу, чтобы получить список всех полей, определенных для этой модели. Например, phone_number = CharField (max_length = 20). В принципе, я хочу, чтобы получить что-нибудь, что наследуется от класса Field. Я думал, что я смогу получить эти воспользовавшись inspect.getmembers (модель), но список он возвращает не содержит какой-либо из этих полей. Похоже, что Django уже получила владение класса и добавила все свои магические атрибуты и раздела, что на самом деле была определена. Итак ... как я могу получить эти поля? Они, вероятно, имеют функцию для извлечения их для своих внутренних целей?
mpen
140

голосов
3

ответ
49.6k

Просмотры

Джанго поля динамической модели

Я работаю на нескольких арендуемых приложений, в которых некоторые пользователи могут определять свои собственные поля данных (через администратора) для сбора дополнительных данных в формах и сообщать о данных. Последний бит делает JSONField не большой вариант, так что вместо этого у меня есть следующее решение: класс CustomDataField (models.Model): «Аннотация спецификации для произвольных полей данных не используется для хранения самих данных, но метаданные о полях.» «» "" сайт = models.ForeignKey (сайт, по умолчанию = параметр конфигурация) имя = models.CharField (max_length = 64) класс Meta: абстрактный класс = True CustomDataValue (models.Model): "" "Абстрактная спецификация для произвольных данных". "" значение = models.CharField (max_length = 1024) класс Мета: абстрактные = True Обратите внимание, как CustomDataField имеет ForeignKey на сайт - каждый сайт будет иметь различный набор полей пользовательских данных, но и использовать ту же базу данных. Затем различные конкретные поля данных могут быть определены как: класс UserCustomDataField (CustomDataField): класс пас UserCustomDataValue (CustomDataValue): custom_field = models.ForeignKey (UserCustomDataField) пользователь = models.ForeignKey (Пользователь, related_name = 'custom_data') Класс Meta: unique_together = (( 'пользователь', 'custom_field')) Это приводит к следующему использованию: custom_field = UserCustomDataField.objects.create (имя = 'зодиак', сайт = my_site) #probably созданного в пользователя с правами администратора = User.objects. создать (имя пользователя = 'Foo') user_sign = UserCustomDataValue (custom_field = custom_field, пользователя = пользователя, данные = 'Весы') user.custom_data. добавить (user_sign) #actually, что делает это даже делать? Но это чувствует себя очень неуклюжим, особенно в связи с необходимостью вручную создать соответствующие данные и связать его с конкретной моделью. Есть ли лучший подход? Параметры, которые были упреждающие выброшенные: Выборочная SQL для изменения таблицы на лету. Отчасти потому, что это не будет масштабироваться и отчасти потому, что это слишком много рубить. Схемы менее решения, такие как NoSQL. Я ничего не имею против них, но они до сих пор не очень подходит. В конечном счете эти данные набран, и существует возможность использования приложения отчетности третьей стороной. JSONField, как указано выше, так как он не будет хорошо работать с запросами. Есть ли лучший подход? Параметры, которые были упреждающие выброшенные: Выборочная SQL для изменения таблицы на лету. Отчасти потому, что это не будет масштабироваться и отчасти потому, что это слишком много рубить. Схемы менее решения, такие как NoSQL. Я ничего не имею против них, но они до сих пор не очень подходит. В конечном счете эти данные набран, и существует возможность использования приложения отчетности третьей стороной. JSONField, как указано выше, так как он не будет хорошо работать с запросами. Есть ли лучший подход? Параметры, которые были упреждающие выброшенные: Выборочная SQL для изменения таблицы на лету. Отчасти потому, что это не будет масштабироваться и отчасти потому, что это слишком много рубить. Схемы менее решения, такие как NoSQL. Я ничего не имею против них, но они до сих пор не очень подходит. В конечном счете эти данные набран, и существует возможность использования приложения отчетности третьей стороной. JSONField, как указано выше, так как он не будет хорошо работать с запросами. и существует возможность использования приложения отчетности третьей стороной. JSONField, как указано выше, так как он не будет хорошо работать с запросами. и существует возможность использования приложения отчетности третьей стороной. JSONField, как указано выше, так как он не будет хорошо работать с запросами.
GDorn
136

голосов
7

ответ
70.1k

Просмотры

Джанго ОРМ, как просмотреть (или журнал) выполненный запрос?

Есть ли способ, что я могу напечатать запрос к Django ORM генерирует? Скажем, я выполняю следующее заявление: Model.objects.filter (имя = «тест») Как я могу получить, чтобы увидеть сгенерированный запрос SQL?
132

голосов
4

ответ
44.8k

Просмотры

В Django, как можно фильтровать QuerySet с динамическим поиском в поле?

Учитывая класс: от django.db импортных моделей класса Person (models.Model): имя = models.CharField (max_length = 20) Возможно ли, и если да, то как, чтобы иметь QuerySet, что фильтры на основе динамических аргументов? Например: # Вместо: Person.objects.filter (name__startswith = 'B') # ... и: Person.objects.filter (name__endswith = 'B') # ... есть какой-то способ, учитывая: filter_by = '{0} __ {1}'. формат ( 'имя', 'StartsWith') FILTER_VALUE = 'B' # ... что вы можете запустить эквивалент этого? Person.objects.filter (filter_by = FILTER_VALUE) # ... который будет сгенерировано исключение, так как `filter_by` не # атрибут` Person`.
Brian M. Hunt
131

голосов
1

ответ
54k

Просмотры

Django модель - без учета регистра запросов / Фильтрация

Как я могу запросить / фильтр в Django и игнорировать случаи моей строки запроса? У меня есть кое-что, как и хотел, чтобы игнорировать регистр my_parameter: MyClass.objects.filter (имя = my_parameter)
Ron
125

голосов
11

ответ
52.1k

Просмотры

В Джанго пользовательской модели методы сохранения (), как вы должны определить новый объект?

Я не хочу, чтобы вызвать специальное действие в методе сохранения () модельного объекта Джанго, когда я спасительной новую запись (не обновление существующей записи.) Является ли проверка (self.id! = None) необходимо и достаточно, чтобы гарантировать самость запись является новым и не обновляется? Никакие особые случаи это может? Выходит
MikeN
123

голосов
3

ответ
50.2k

Просмотры

Джанго FileField с upload_to определяется во время выполнения

Я пытаюсь настроить мои закачки, так что если пользователь джо загружает файл, он идет к MEDIA_ROOT / Джо в отличие от того, файлы у всех идут в MEDIA_ROOT. Проблема в том, я не знаю, как определить это в модели. Вот как это выглядит в данный момент: класс Content (models.Model): Имя = файл models.CharField (max_length = 200) пользователь = models.ForeignKey (Пользователь) = models.FileField ( '' upload_to =) Так что я хочу вместо '.' как upload_to, есть то имя пользователя. Я понимаю, что по состоянию на Django 1.0 вы можете определить свою собственную функцию для обработки upload_to, но эта функция не имеет ни малейшего представления о том, кто пользователь будет либо так что я немного потерял. Спасибо за помощь!
Teebes
120

голосов
11

ответ
66.2k

Просмотры

Django фильтр против получить для одного объекта?

У меня были дебаты по этому вопросу с некоторыми коллегами. Есть ли предпочтительный способ извлечения объекта в Django, когда вы ожидали только один? Два очевидных способа являются: попробуйте: OBJ = MyModel.objects.get (ID = 1), за исключением MyModel.DoesNotExist: нет # мы не объект! сделать что-то пропуск и OBJS = MyModel.objects.filter (ID = 1), если Len (OBJS) == 1: OBJ = OBJS [0] еще: # у нас нет никакого объекта! сделать что-то проходит первый метод кажется поведенческий более правильным, но используют исключения в потоке управления, который может ввести некоторые накладные расходы. Во-вторых, более окольным, но никогда не будет поднимать исключение. Любые мысли, на какой из них предпочтительнее? Что является более эффективным?
Cory
120

голосов
5

ответ
20k

Просмотры

Почему не Джанго model.save () вызов full_clean ()?

Мне просто интересно, если кто-нибудь знает, если есть хорошая причина, почему ОРМ Джанго не называет «full_clean» на модели, если она не сохраняются как часть формы модели. Обратите внимание, что full_clean () не будет вызываться автоматически при вызове метода вашей модели сохранения (). Вам нужно будет назвать это вручную, если вы хотите запустить проверку модели один шаг для собственных вручную созданных моделей. Джанго полный чистый документ (Примечание: цитата обновлен для Django 1.6 ... предыдущие Джанго документы имели предостережение о ModelForms а.) Существуют веские причины, почему люди не хотят такого поведения? Я думаю, если вы нашли время, чтобы добавить проверку к модели, вы хотите, что проверка запускаться каждый раз при сохранении модели. Я знаю, как получить все, чтобы работать должным образом, я просто искал объяснение.
Aaron
120

голосов
6

ответ
94.9k

Просмотры

Как ограничить максимальное значение числового поля в модели Django?

Django имеет различные числовые поля, доступные для использования в моделях, например DecimalField и PositiveIntegerField. Хотя первые могут быть ограничены числом знаков после запятой хранящегося и общее количество символов, хранимой, есть ли способ, чтобы ограничить его хранить только числа в пределах определенного диапазона, например, 0.0-5.0? В противном случае, есть ли способ ограничить PositiveIntegerField только к магазину, к примеру, число до 50? Обновление: теперь, когда ошибка 6845 была закрыта, это StackOverflow вопрос может быть спорным. - sampablokuper
sampablokuper
118

голосов
4

ответ
123.6k

Просмотры

Как выразить отношение один ко многим в Django

Я определяю свои модели Django прямо сейчас, и я понял, что не было OneToManyField в типах модели поля. Я уверен, что есть способ сделать это, так что я не уверен, что я пропускаю. Я по существу есть что-то вроде этого: класс Dude (models.Model): цифры = models.OneToManyField ( 'PhoneNumber') класс PhoneNumber (models.Model): число = models.CharField () В этом случае каждый Чувак может иметь несколько номера телефонов , но отношения должны быть в одном направлении, в том, что мне не нужно знать, от PhoneNumber которой Чувак владеет им, сам по себе, как я мог бы иметь много различных объектов, которые владеют экземплярами PhoneNumber, такие как бизнес для примера: класс бизнеса ( models.Model): цифры = models.OneToManyField ( 'PhoneNumber') что бы я заменить OneToManyField (который Безразлично» т существуют) с в модели для представления такого рода отношения? Я иду от Hibernate / JPA, где объявить один-ко-многим было так же просто, как: @OneToMany частных списка номера телефонов; Как я могу выразить это в Django?
Naftuli Kay
118

голосов
13

ответ
100.3k

Просмотры

Как вы сериализовать экземпляр модели в Django?

Существует много документации о том, как сериализовать модель QuerySet но как только сериализации в JSON к полям экземпляра модели?
Jason Christa
114

голосов
7

ответ
64.9k

Просмотры

Django дамп данных для единой модели?

Могу ли я выполнить dumpdata в Django только на одной модели, а не все приложения, и если да, то каким образом? Для приложения это будет: питон manage.py dumpdata MyApp Однако, я хочу некоторые конкретные модели, такие как «myapp.mymodel» на свалку. Причина в том, у меня есть какие-то огромные, 3 миллиона записей плюс, наборы данных в том же приложении, что я не хотел бы сбрасывал.
nategood
111

голосов
3

ответ
49.8k

Просмотры

Обновить Джанго объекта из базы данных

Можно ли обновить состояние объекта Джанго из базы данных? Я имею в виду поведение примерно эквивалентно: new_self = само .__ класс __ objects.get (рк = self.pk) для каждого поля записи:. SetAttr (само, поле, GetAttr (new_self, поле)) UPDATE: Найденный снова открыть / wontfix война в трекере: http://code.djangoproject.com/ticket/901. До сих пор не понимаю, почему Сопровождающие это не нравится.
grep
110

голосов
5

ответ
68.3k

Просмотры

Как создать объект для модели Django с многим ко многим поля?

Моя модель -> класс Sample (models.Model): пользователи = models.ManyToManyField (Пользователь) Я хочу, чтобы это сделать (за исключением пользователей, user1 и user2 в этой модели) -> user1 = User.objects.get (рк = 1) user2 = User.objects.get (рк = 2) sample_object = Sample (пользователей = user1, user2 пользователей =) sample_object.save () Я знаю, что это неправильно: D, но я уверен, что вы получите то, что я хочу сделать .. .so, как бы вы это сделали?
Sai Krishna
109

голосов
1

ответ
12.4k

Просмотры

Джанго: с использованием select_related и get_object_or_404 вместе

Есть ли способ использования get_object_or_404 и select_related вместе или любым другим способом, чтобы достигнуть результата с помощью этих двух вместе (за исключением сдачи его в попытке / за исключением) ??
Neo
108

голосов
3

ответ
71.2k

Просмотры

Как «Массовое обновление» с Django?

Я хотел бы обновить таблицу с Джанго - что-то вроде этого в нестандартном SQL: обновление tbl_name имя набора = «Foo», где «бар» Name = Мой первый результат является чем-то вроде этого, - но это противно, не так ли? список = ModelClass.objects.filter (имя = 'бар') для OBJ в списке: obj.name = 'Foo' obj.save () Есть ли более элегантный способ?
Thomas Schwärzl
105

голосов
11

ответ
95.3k

Просмотры

Что является наиболее эффективным способом для хранения списка в модели Django?

В настоящее время у меня есть много объектов питона в моем коде, подобные следующий: класс MyClass (): Защита __init __ (я, имя, друзья): self.myName = имя self.myFriends = [Обл (х) для й в друзьях] Теперь я хочу, чтобы превратить это в модель Django, где self.myName является строковым полем, и self.myFriends список строк. от django.db импортных моделей класса myDjangoModelClass (): Myname = models.CharField (max_length = 64) myFriends = ??? # То, что происходит здесь? Поскольку список является такой общей структуры данных в Python, я вроде ожидать там, чтобы быть моделью поля Django для него. Я знаю, что могу использовать ManyToMany или OneToMany отношения, но я надеялся избежать этого дополнительного косвенность в коде. Изменить: Я добавил этот родственный вопрос, который люди могут оказаться полезными.
grieve
101

голосов
7

ответ
30.6k

Просмотры

Unique fields that allow nulls in Django

У меня есть модель Foo, который имеет поле бар. Поле бара должно быть уникальным, но позволяет аннулирует в нем, то есть я хочу, чтобы позволить более одной записи, если бар поле пустое, но если он не обнулить значение должно быть уникальным. Вот моя модель: класс Foo (models.Model): имя = models.CharField (max_length = 40) бар = models.CharField (max_length = 40, уникальный = True, пусто = True, нуль = True, по умолчанию = None) и здесь соответствующий SQL для таблицы: CREATE TABLE appl_foo (ID серийник NOT NULL, "имя" символ изменяющегося (40) NOT NULL, бар характер изменяющийся (40), скованность appl_foo_pkey PRIMARY KEY (ID), скованность appl_foo_bar_key UNIQUE (бар) ) при использовании интерфейса администратора для создания более 1 Foo объектов, где бар нуля дает мне ошибку: «Foo с этим бар уже существует.» Однако при вставке в базу данных (PostgreSQL): вставить в appl_foo ( "имя", бар) значений ( 'test1', NULL) вставить в appl_foo ( "имя", бар) значения ( 'test2', NULL) Это работает, только хорошо, это позволяет мне вставить более чем на 1 запись с нулевым баром быть, поэтому база данных позволяет мне делать то, что я хочу, это просто что-то не так с моделью Django. Есть идеи? EDIT портативность решения, насколько DB не является проблемой, мы довольны Postgres. Я попытался установить уникальный для вызываемым, что моя функция, возвращающая True / False для конкретных значений бара, он не давал каких-либо ошибок, однако сшиты, как это не имело никакого эффекта. До сих пор, я удалил уникальный спецификатор от объекта бара и обработок штриховой уникальности в применении, однако до сих пор ищу более элегантное решение.
Sergey Golovchenko
97

голосов
11

ответ
48.3k

Просмотры

Изменение размера полей в Django администратора

Django, как правило, заполняет пространство по горизонтали при добавлении или редактировании записи на администраторе, но, в некоторых случаях, реальная трата пространства, когда, например, редактирование поля даты, 8 символов ширины, или CharField, также 6 или 8 символы в ширину, а затем окно редактирования доходит до 15 или 20 символов. Как я могу сказать администратору, насколько широко текстовое поле должно быть, или высоту окна редактирования TextField?
Andor
96

голосов
12

ответ
30.6k

Просмотры

Проблемы с ContentTypes при загрузке арматуры в Django

У меня возникли проблемы с загрузкой Django светильников в моей базе данных MySQL из-за ContentTypes конфликтов. Сначала я пытался сбрасывать данные только из моего приложения, как это: ./manage.py dumpdata Escola> fixture.json, но я продолжал получать не хватает иностранных ключевых проблем, потому что мое приложение «Escola» использует таблицы из других приложений. Я продолжал добавлять дополнительные приложения, пока я не получил на это: ./manage.py dumpdata ContentTypes Auth Escola> fixture.json Теперь проблема заключается в следующем нарушение ограничения при попытке загрузить данные в качестве испытательного стенда: IntegrityError: (1062, " Дублировать запись «эскола-t23aluno» для ключа 2" ) кажется, что проблема заключается в том, что Django пытается динамически воссоздать ContentTypes с различными значениями первичного ключа, которые конфликтуют с первичными значениями ключа от прибора. Это, как представляется, такой же, как ошибка, описываемая здесь: http://code.djangoproject.com/ticket/7052 Проблема заключается в том, что рекомендуемый обходной путь, чтобы сбросить приложение ContentTypes, который я уже делаю !? Что дает? Если это делает никакой разницы у меня есть некоторые пользовательские модели разрешения как описано здесь: http://docs.djangoproject.com/en/dev/ref/models/options/#permissions
user27478