1

голосов
0

ответ
23

Просмотры

Django : changing a specific form in modelformset

Вот загадка. Это упрощенная версия этой проблемы я имею дело с, так, чтобы мы могли захватить основную проблему. Таким образом, для простоты и актуальности, а не все поля и отношения приведены здесь. Итак, у меня есть modelformset, и я хотел бы получить доступ к каждой отдельной форме для изменения поля на основе QuerySet. Класс PlayerType (models.Model): тип = models.CharField (MAX_LENGTH = 30, выбор = PLAYER_TYPES) ​​класс Player (models.Model): Имя = models.CharField (max_length = 30, пусто = False, нуль = False) player_type = models.ForeignKey (PlayerType, related_name = 'игроки') contract_price = models.DecimalField (max_digits = 10, decimal_places = 2, пусто = False, нуль = False) price_unit_of_measurement = models.CharField (MAX_LENGTH = 20, выбор = STANDARD_UOM) Формы. класс ру PlayerForm (ModelForm): Класс Meta: поля = [ «имя», «price_unit_of_measurement»] views.py PlayerFormSet = modelformset_factory (игрок, форма = PlayerForm, экстра = 5) Теперь предположим, что я хочу, чтобы отобразить различные единицы измерения в зависимости от того, какой игрок я показываю , Например, контракт игрок 1 может быть основан на единовременном или сумму за игру, и контракт другого игрока может быть основан на количестве сыгранных минут, цена за месяц, и т.д. в зависимости от типа плеера. В сущности, я хотел бы знать, как получить доступ к каждой форме в modelformset и изменить единицы измерения для этой формы в одиночку, из-умолчанию в модели. Я также понимаю, что inlinemodelformset является более подходящим для этого применения в качестве игрока, связанного с PlayerType на один-ко-многим основы. price_unit_of_measurement '] views.py PlayerFormSet = modelformset_factory (игрок, форма = PlayerForm, экстра = 5) Теперь предположим, что я хочу, чтобы отобразить другую единицу измерения в зависимости от того, какой игрок я показываю. Например, контракт игрок 1 может быть основан на единовременном или сумму за игру, и контракт другого игрока может быть основан на количестве сыгранных минут, цена за месяц, и т.д. в зависимости от типа плеера. В сущности, я хотел бы знать, как получить доступ к каждой форме в modelformset и изменить единицы измерения для этой формы в одиночку, из-умолчанию в модели. Я также понимаю, что inlinemodelformset является более подходящим для этого применения в качестве игрока, связанного с PlayerType на один-ко-многим основы. price_unit_of_measurement '] views.py PlayerFormSet = modelformset_factory (игрок, форма = PlayerForm, экстра = 5) Теперь предположим, что я хочу, чтобы отобразить другую единицу измерения в зависимости от того, какой игрок я показываю. Например, контракт игрок 1 может быть основан на единовременном или сумму за игру, и контракт другого игрока может быть основан на количестве сыгранных минут, цена за месяц, и т.д. в зависимости от типа плеера. В сущности, я хотел бы знать, как получить доступ к каждой форме в modelformset и изменить единицы измерения для этой формы в одиночку, из-умолчанию в модели. Я также понимаю, что inlinemodelformset является более подходящим для этого применения в качестве игрока, связанного с PlayerType на один-ко-многим основы. экстра = 5) Теперь предположим, что я хочу, чтобы отобразить другую единицу измерения в зависимости от того, какой игрок я показываю. Например, контракт игрок 1 может быть основан на единовременном или сумму за игру, и контракт другого игрока может быть основан на количестве сыгранных минут, цена за месяц, и т.д. в зависимости от типа плеера. В сущности, я хотел бы знать, как получить доступ к каждой форме в modelformset и изменить единицы измерения для этой формы в одиночку, из-умолчанию в модели. Я также понимаю, что inlinemodelformset является более подходящим для этого применения в качестве игрока, связанного с PlayerType на один-ко-многим основы. экстра = 5) Теперь предположим, что я хочу, чтобы отобразить другую единицу измерения в зависимости от того, какой игрок я показываю. Например, контракт игрок 1 может быть основан на единовременном или сумму за игру, и контракт другого игрока может быть основан на количестве сыгранных минут, цена за месяц, и т.д. в зависимости от типа плеера. В сущности, я хотел бы знать, как получить доступ к каждой форме в modelformset и изменить единицы измерения для этой формы в одиночку, из-умолчанию в модели. Я также понимаю, что inlinemodelformset является более подходящим для этого применения в качестве игрока, связанного с PlayerType на один-ко-многим основы. s контракт может быть основан на количестве сыгранных минут, цена за месяц, и т.д. в зависимости от типа плеера. В сущности, я хотел бы знать, как получить доступ к каждой форме в modelformset и изменить единицы измерения для этой формы в одиночку, из-умолчанию в модели. Я также понимаю, что inlinemodelformset является более подходящим для этого применения в качестве игрока, связанного с PlayerType на один-ко-многим основы. s контракт может быть основан на количестве сыгранных минут, цена за месяц, и т.д. в зависимости от типа плеера. В сущности, я хотел бы знать, как получить доступ к каждой форме в modelformset и изменить единицы измерения для этой формы в одиночку, из-умолчанию в модели. Я также понимаю, что inlinemodelformset является более подходящим для этого применения в качестве игрока, связанного с PlayerType на один-ко-многим основы.
EarlyCoder
1

голосов
1

ответ
350

Просмотры

Python: Ошибка Импорт данных из CSV в Postgres (ОШИБКА: неверный входной синтаксис для целого числа :)

Я написал кусок кода Python, который должен скопировать данные CSV в таблицу I, созданной для размещения данных. Вот код: Защита sql_copy_command (csv_file, схемы, базы данных, таблицы, ограничитель = '', заголовок = True): если заголовок: sql_command = "" "COPY "{схема} _ {TBL}" FROM«{the_csv_file} 'DELIMITER' {DLM} CSV жатки; "" "формат (the_csv_file = csv_file, дб = база данных, TBL = таблица, DLM = разделителем, схема = схема), иначе:. sql_command = """ COPY «{схема} _ { TBL} "с '{the_csv_file}' DELIMITER '{DLm}' CSV; """ формат (the_csv_file = csv_file, дБ = базы данных, TBL = таблица, DLM = разделитель, схемы = схема) возврат sql_command Это выдает следующее сообщение об ошибке : DataError: неверный входной синтаксис для целого числа: "
EarlyCoder
1

голосов
2

ответ
244

Просмотры

Расширение модели пользователя Джанго не заполняет auth.user

Таким образом, я продлил модель User Django (см https://docs.djangoproject.com/en/1.6/topics/auth/customizing/#specifying-a-custom-user-model). Вот моя модель: класс User (AbstractBaseUser): электронная почта = models.EmailField (verbose_name = 'адрес электронной почты', уникальный = True, db_index = True) first_name = models.CharField (max_length = 20) last_name = models.CharField (max_length = 30) присоединился к = models.DateTimeField (auto_now_add = True) is_active = models.BooleanField (по умолчанию = True) is_admin = models.BooleanField (по умолчанию = False) ... USERNAME_FIELD = 'адрес электронной почты' в регистрационной форме: класс RegistrationForm (формы. ModelForm): "" "Форма для регистрации новой учетной записи """ по электронной почте = forms.EmailField (виджет = forms.widgets.TextInput, set_password (the_password) # Это Хэш пароля перед сохранением, если совершить: user.save () возвращения пользователя и, наконец, в views.py: класс регистрация (View): signup_form = RegistrationForm template_name = 'счета / signup.html' Защита пост (я, запрос): the_signup_form = self.signup_form (request.POST если (request.POST) еще ничего нет) ... если the_signup_form.is_valid (): cleaned_signup_form = the_signup_form.cleaned_data the_user = the_signup_form.save () # User сохраняется. Возвращение редирект ( «/») Теперь проблема заключается в том, что после отправки формы, таблицы в пользовательской модели User населена хорошо, но «AUTH_USER» таблица Джанго НЕ! Я думал, вызывающий пользователь = супер (RegistrationForm, самость). сохранить (фиксации = False) будет заботиться о сохранении класса на основе. И, поэтому, конечно, когда я пытаюсь проверить подлинность: this_user = Аутентификация (электронная почта = the_user.email, пароль = the_user.password) this_user его нет, поэтому он не будет войти в систему пользователя. Есть идеи?
EarlyCoder
1

голосов
5

ответ
20.1k

Просмотры

Python cannot import openpyxl

Я бегу Windows 7 и с помощью Python 2.7. Я установил openpyxl с помощью easy_install. Похоже, что установка прошла успешно. Я изменил каталог и разжег Python. >>> импорт openpyxl >>> Таким образом, это должно означать, что Python сможет найти openpyxl. Тем не менее, когда я выполнить простой тест программы excell_tutorial1.py и запустить его, я получаю следующее: Traceback (самый последний вызов последнего): Файл «C: /Python27/playground/excell_tutorial1.py», линия 7, в от openpyxl импорта Рабочая тетрадь ImportError: модуль не назвал openpyxl очень запутанным! Он мог найти его в подсказке линии, но не в программе! импорт ОС, SYS the_module = "C: \\ python27 \\ Lib \\ сайт-пакеты \\ openpyxl-2.3.3-py2.7.egg \\ openpyxl" если the_module не sys.path: sys.path.append (the_module), если the_module в sys.path: печать sys.path. Индекс (the_module) печать sys.path [18] так, что это дает мне: 18 C: \ python27 \ Lib \ сайт-пакеты \ openpyxl-2.3.3-py2.7.egg \ openpyxl Любой человек может думать о том, что проблема может быть? Очень признателен
EarlyCoder
2

голосов
2

ответ
879

Просмотры

Джанго обратное с помощью kwargs

Скажем, в методе после моего регистрации класса, я хочу, чтобы перенаправить пользователя на страницу входа, если пользователь уже зарегистрирован достаточно, просто. Класс регистр (View): ... Защита поста (я, запрос): # код, чтобы проверить, если адрес электронной почты уже в сообщении дб = { «сообщение»: «Вы уже зарегистрированы и зарегистрирован проект. Пожалуйста, просто войти в систему, „REGISTRATION_DATE“: the_registered_date} # формы с заполненной в данных возвращается возвращение HttpResponseRedirect (реверс ( „счета: войти“, kwargs = сообщение)) в моем urls.py: # urls.py ... URL (г '^ Войти / {0,1} $', Login.as_view (), имя = 'Войти', kwargs = { 'сообщение': нет, 'дата': None}), Это не дает мне сообщение об ошибке: Reverse для «входа» с аргументами "() и ключевые аргументы «{» сообщение «:» Вы уже зарегистрированы и зарегистрирован проект. Пожалуйста, просто войдите в систему, 'REGISTRATION_DATE': datetime.datetime (2015, 10, 15, 14, 3, 39, 864000, tzinfo =)}»не найден. 2 шаблон (ы) пробовал: [u'accounts / $ 'u'accounts / Войти / {0,1} $'] Что я делаю неправильно?
EarlyCoder
2

голосов
1

ответ
567

Просмотры

Django Как динамически подстановочные поля

Я хотел бы сделать что-то вроде этого: до = [rec.field для гего в all_relevant_records] # Есть некоторые операции на all_relevant_records: для гего в all_relevant_records: rec_pk = rec.pk new_field = get_new_field (Rec, поле) db.objects. фильтр (рк = rec_pk) .update (поле = new_field) после того, как = [rec.field для рек в all_relevant_records], но это не работает, как поле не может быть решена в поле QuerySet. Я посмотрел на Как динамически обеспечить подстановки имени поля в Django запросе? Но это не совсем то, что я хочу. Любая помощь приветствуется
EarlyCoder
1

голосов
2

ответ
284

Просмотры

Django how to write PositiveDecimalField

Я хотел бы написать PositiveDecimalField. Вот мой код: от django.core.exceptions импорта ValidationError от импорта django.utils.translation ugettext_lazy, как _ из django.db.models импорт DecimalField из десятичной импорта * четкость validate_positive_decimal (значение): попробуйте: decimal_value = Decimal (значение), если decimal_value <0: поднять ValidationError (_ ( '{} вал должен быть положительным десятичным number'.format (значение = decimal_value)), код =' отрицательный десятичный '), за исключением (ValueError, TypeError): поднять ValidationError (_ (' Enter действительная десятичный или целое значение '), код =' недействительны десятичный ') класс PositiveDecimalField (DecimalField): default_validators = [validate_positive_decimal] Защита __init __ (самоповреждения, * арг, ** kwargs): супер (DecimalField, самость) .__ INIT __ (* арг, ** kwargs) Защита валидаторы (Я): возвращение супер (PositiveDecimalField, самонарезающий) .validators + [validate_positive_decimal] Тогда, в моем классе службе models.py (models.Model): service_rate = PositiveDecimalField (max_digits = 6, decimal_places = 2, пустой = True) # например 125,25 для воды (демо-фаза), -125,25 не должна быть принята ошибка, я получаю это: супер (DecimalField, самость) .__ INIT __ (* Args, ** kwargs) TypeError: __init __ () получил неожиданные ключевое слово аргумент «max_digits» Я посмотрел на исходный код для DecimalField Джанго в документации. Я также попытался просто передать валидатор, validate_positive_decimal, к DecimalField, но не проверяет против него. Что мне нужно делать здесь? класс ру обслуживания (models.Model): service_rate = PositiveDecimalField (max_digits = 6, decimal_places = 2, пустой = True) # например 125,25 для воды (демо-фаза), -125,25 не должна быть принята ошибка, я получаю это: супер ( DecimalField, самость) .__ INIT __ (* Args, ** kwargs) TypeError: __init __ () получил неожиданный аргумент ключевое слово 'max_digits' Я смотрел на исходный код для DecimalField Джанго в документации. Я также попытался просто передать валидатор, validate_positive_decimal, к DecimalField, но не проверяет против него. Что мне нужно делать здесь? класс ру обслуживания (models.Model): service_rate = PositiveDecimalField (max_digits = 6, decimal_places = 2, пустой = True) # например 125,25 для воды (демо-фаза), -125,25 не должна быть принята ошибка, я получаю это: супер ( DecimalField, самость) .__ INIT __ (* Args, ** kwargs) TypeError: __init __ () получил неожиданный аргумент ключевое слово 'max_digits' Я смотрел на исходный код для DecimalField Джанго в документации. Я также попытался просто передать валидатор, validate_positive_decimal, к DecimalField, но не проверяет против него. Что мне нужно делать здесь? __init __ () получил неожиданное ключевое слово аргумент «max_digits» Я смотрел на исходный код для DecimalField Джанго в документации. Я также попытался просто передать валидатор, validate_positive_decimal, к DecimalField, но не проверяет против него. Что мне нужно делать здесь? __init __ () получил неожиданное ключевое слово аргумент «max_digits» Я смотрел на исходный код для DecimalField Джанго в документации. Я также попытался просто передать валидатор, validate_positive_decimal, к DecimalField, но не проверяет против него. Что мне нужно делать здесь?
EarlyCoder
2

голосов
1

ответ
1.4k

Просмотры

Джанго TEMPLATEDOESNOTEXIST не выглядит в каталоге приложения?

Я смотрел на все вопросы TemplateDoesNotExist Google нашел меня на Stackoverflow. Тем не менее, я не мог решить эту ошибку. Мои установленные приложения: INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', «Джанго. contrib.staticfiles', 'django.contrib.humanize', 'Ремаркет', 'опросы',) Шаблон Loader: TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', «django.template.loaders.app_directories.Loader «) Но, когда запрос / опросы / приходит, Django просматривает только под администратором и AUTH приложений. Он не смотрит под приложение опрашивает найти шаблон под приложение для index.html. Это прямо из Джанго Опрос App. Например, Может кто-нибудь узнать, что это такое, что мне не хватает? Кроме того, я знаю, как "заставить его работать. Вы можете просто переместить шаблон из каталога приложения и в каталоге проекта. Затем, вы можете получить template_dir набор, чтобы найти его для вас. Но, что отнимает от повторного ее использования приложения. Так что, пожалуйста, объясните мне, как мы можем это исправить, чтобы мы поддерживать многоразовую функцию приложения.
EarlyCoder
0

голосов
1

ответ
23

Просмотры

Джанго обновление с 1.10 до 1.11 DeprecationWarning

Я пытаюсь обновить мой проект от Джанго 1.10 до 1.11: >>> django.VERSION (1, 10, 0, «окончательного», 1) Когда я бег питона -Wall manage.py теста, я получаю следующее сообщение об ошибке: C: \ Users \ Environments \ Lib \ сайт-пакеты \ Джанго \ вно \ Auth \ base_user.py: 52: DeprecationWarning: не __class__ набор, определяющий 'AbstractBaseUser', как. Был __classcell__ распространяется на тип .__ new__? Класс AbstractBaseUser (models.Model): Я посмотрел вокруг, но не смог найти решение для решения этой жалобы. Учитывая, что я расширив класс пользователей, это не должно быть особенно к моему проекту. Так, кто-нибудь нашел способ решить эту проблему? Класс пользователя (AbstractBaseUser, PermissionsMixin): "" "Пользовательский класс пользователя """ USER_TYPE = (( 'владелец', 'Владелец'), ( 'разработчик', «Есть ли у пользователя есть специальное разрешение» «» возвращающие # Это, возможно, потребуется изменить в зависимости от объекта, который мы хотим найти разрешение для четкости has_module_perms (самостоятельно, app_label): «»»ли пользователь имеет разрешение на просмотр приложения 'app_label'? Ответ по умолчанию да. Это может быть изменен в дальнейшем. «» «Вернуть истинный @property четкости is_staff (Self):„“» Является ли пользователь членом персонала? ''»Вернуть self.is_admin Защиту __unicode __ (Self): возвращение '{user_email}, {} user_title вступил в формате {joined_date}' (user_email = self.email, user_title = self.user_type,
EarlyCoder