Мне нужно создать FormSet из модели, но мне нужно вставить "дополнительное значение" в каждую форму.
В частности, у меня есть JApplet, который генерирует некоторые маркеры и пути на изображении, а POST - на сервере.
В моей модели строки состоят из двух маркеров. Но когда я его POST, потому что я использую идентификатор, сгенерированный из JApplet, а не из базы данных, я не буду знать, из чего будет составлен маркер Path.
Итак, я подумал о том, чтобы вставить "временный идентификатор" в маркер в форме и выполнить правильные расположения в представлении перед сохранением пути.
Я думал об определении пользовательской формы для маркеров, но это не кажется очень сухим, и я не хочу возвращаться к этому, если я изменю модель Marker.
Вот форма:
class PointForm(forms.ModelForm):
temp_id = forms.IntegerField()
class Meta:
model = Point
def clean(self):
if any(self.errors):
# Don't bother validating the formset unless each form is valid on its own
return
ingresso = self.cleaned_data['ingresso']
ascensore = self.cleaned_data['ascensore']
scala = self.cleaned_data['scala']
if (ingresso and ascensore) or (ingresso and scala) or (ascensore and scala):
raise forms.ValidationError("A stair cannot be a elevator or an access!!!")
return self
def save(commit=True):
# do something with self.cleaned_data['temp_id']
super(PointForm).save(commit=commit)
И модель:
class Point(models.Model):
RFID = models.CharField(max_length=200, blank=True)
x = models.IntegerField()
y = models.IntegerField()
piano = models.ForeignKey(Floor)
ingresso = models.BooleanField()
Ошибка:
ViewDoesNotExist at /admin/
Could not import buildings.views.getFloors. View does not exist in module buildings.views.
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/
Django Version: 1.4.1
Exception Type: ViewDoesNotExist
Exception Value:
Could not import buildings.views.getFloors. View does not exist in module buildings.views.
Exception Location: /usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py in get_callable, line 101
Ошибка возникает, когда я пытаюсь загрузить страницу администрирования, эта страница вообще не имеет ссылок на форму.
РЕШЕНИЕ ДЛЯ ИСКЛЮЧЕНИЯ
Хорошо, я напишу здесь, как узнать, почему Django делает такую странную вещь.
Здесь это правильный способ узнать, в чем проблема.
Исключение было выбрано потому, что я забыл добавить forms.py
в from django import forms
.