Найти - Пользователи
Полная версия: "Пожалуйста, исправьте ошибки ниже. " в админке - как лечить
Начало » Django » "Пожалуйста, исправьте ошибки ниже. " в админке - как лечить
1
darvin11
Вылезла такая ошибка, не знаю что делать
При попытке редактировании некоторой модели постоянно не проходит валидацию формы, причем в каком поле ошибка не пишет
вот модель:
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()
пробовал и с закомментированной строчкой, и без - одно и тоже
с остальными моделями в проекте все нормально
darvin11
ах да, деталь в картину: пробовал точно те же данные ввести в inlineadmin для этой модели - все сохранилось! не вылезла ошибка валидации формы.
Как отладить?
vaxXxa
скорее всего есть некоторое обязательно поле (например у тебя это может быть client, или machinemark, или month, или motohours) и ты не прописал его в классе в admin.py. Так что admin.py в студию.
vaxXxa
inlineadmin - это совсем другая модель, которая видимо нормально описана в admin.py.
darvin11
локализировал проблему:
class MachineAdmin(admin.ModelAdmin):
inlines = [#ReportInline, \
# FixInline, \
# MaintenanceInline, \
# CheckupInline, \
# UploadInline, \
]
вот так работает. с инлайнами - непроходит валидацию
расскажите, как инлайны могут влиять на валидацию формы?
darvin11
проблема была в моем кастомном фильтре для обрезания пустых форм из формсета для инлайна. подскажите, как без него убрать три лишних записи в каждом инлайне пустых?
@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
darvin11
vaxXxa
скорее всего есть некоторое обязательно поле (например у тебя это может быть client, или machinemark, или month, или motohours) и ты не прописал его в классе в admin.py. Так что admin.py в студию.
не, не в admin.py дело, а в фильтре для шаблона инлайнов, который три пустых записи режет
чем бы его более красивым заменить?.. искал, как заставить не выводить 3 пустые записи в конце каждого инлайна, не нашел
vaxXxa
ну, в инлайновых классах есть атрибут extra. Он отвечает за количество инлайновых полей.
darvin11
vaxXxa
ну, в инлайновых классах есть атрибут extra. Он отвечает за количество инлайновых полей.
спасибо, то, что нужно!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB