Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » "Пожалуйста, исправьте ошибки ниже. " в админке - как лечить [RSS Feed]

#1 Июль 23, 2010 18:40:24

darvin11
От:
Зарегистрирован: 2009-10-21
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

Вылезла такая ошибка, не знаю что делать
При попытке редактировании некоторой модели постоянно не проходит валидацию формы, причем в каком поле ошибка не пишет
вот модель:

class Machine(models.Model):
serial = models.CharField(max_length=30, blank=True, null=True)
client = models.ForeignKey(Client, related_name="machines")
# customer = models.ForeignKey(Client, blank=True, null=True, related_name="machines_customer")
alias = models.CharField(max_length=30, blank=True)
machinemark = models.ForeignKey(MachineMark)
month = models.IntegerField()
motohours = models.IntegerField()
пробовал и с закомментированной строчкой, и без - одно и тоже
с остальными моделями в проекте все нормально



Офлайн

#2 Июль 23, 2010 18:45:16

darvin11
От:
Зарегистрирован: 2009-10-21
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

ах да, деталь в картину: пробовал точно те же данные ввести в inlineadmin для этой модели - все сохранилось! не вылезла ошибка валидации формы.
Как отладить?



Офлайн

#3 Июль 23, 2010 18:45:59

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

скорее всего есть некоторое обязательно поле (например у тебя это может быть client, или machinemark, или month, или motohours) и ты не прописал его в классе в admin.py. Так что admin.py в студию.



Офлайн

#4 Июль 23, 2010 18:47:01

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

inlineadmin - это совсем другая модель, которая видимо нормально описана в admin.py.



Офлайн

#5 Июль 23, 2010 18:50:16

darvin11
От:
Зарегистрирован: 2009-10-21
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

локализировал проблему:

class MachineAdmin(admin.ModelAdmin):
inlines = [#ReportInline, \
# FixInline, \
# MaintenanceInline, \
# CheckupInline, \
# UploadInline, \
]
вот так работает. с инлайнами - непроходит валидацию
расскажите, как инлайны могут влиять на валидацию формы?



Офлайн

#6 Июль 23, 2010 18:56:08

darvin11
От:
Зарегистрирован: 2009-10-21
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

проблема была в моем кастомном фильтре для обрезания пустых форм из формсета для инлайна. подскажите, как без него убрать три лишних записи в каждом инлайне пустых?

@register.filter(name='rstrip_inline_formset')
def rstrip_inline_formset(value, args):

count = 0
for form in value:
count += 1

i = 0
result = []
for form in value:
i += 1
if i>count-args:
break
result.append(form)

return result



Офлайн

#7 Июль 23, 2010 18:58:17

darvin11
От:
Зарегистрирован: 2009-10-21
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

vaxXxa
скорее всего есть некоторое обязательно поле (например у тебя это может быть client, или machinemark, или month, или motohours) и ты не прописал его в классе в admin.py. Так что admin.py в студию.
не, не в admin.py дело, а в фильтре для шаблона инлайнов, который три пустых записи режет
чем бы его более красивым заменить?.. искал, как заставить не выводить 3 пустые записи в конце каждого инлайна, не нашел



Офлайн

#8 Июль 23, 2010 23:06:21

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

ну, в инлайновых классах есть атрибут extra. Он отвечает за количество инлайновых полей.



Офлайн

#9 Июль 24, 2010 23:21:24

darvin11
От:
Зарегистрирован: 2009-10-21
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

"Пожалуйста, исправьте ошибки ниже. " в админке - как лечить

vaxXxa
ну, в инлайновых классах есть атрибут extra. Он отвечает за количество инлайновых полей.
спасибо, то, что нужно!



Офлайн

  • Начало
  • » Django
  • » "Пожалуйста, исправьте ошибки ниже. " в админке - как лечить[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version