Django fügt ein zusätzliches Feld zu einer ModelForm hinzu, die von einem Model generiert wurde

Habe ich zu generieren Sie ein FormSet von einem Modell, aber ich brauche zum einfügen von "zusätzlichen Wert" in jeder form.

Speziell, ich habe ein JApplet, das erzeugt einige Marker und Pfade auf ein Bild, und Stelle es auf dem server.

In meinem Modell-Linien werden aus zwei Markern. Aber wenn ich es POSTE, denn ich bin mit der id generiert, die von JApplet und nicht aus der Datenbank, ich weiß nicht aus welche Marken ein Pfad wird zusammengesetzt sein.

So, ich dachte, das einfügen eines "temporary id" auf den Marker auf die form und die richtigen Absprachen in der Ansicht vor dem speichern den Pfad.

Dachte ich über das definieren eines benutzerdefinierten Formulars für die Marker, aber es nicht scheint zu sein, sehr TROCKEN, und ich möchte nicht kam zurück, um diese wenn ich die Marker Modell.

Hier ist das Formular:

  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)

Und das Modell:

  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()

Den Fehler:

  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

Der Fehler wird erzeugt, wenn ich versuche, das laden der admin-Seite auf dieser Seite keine Verweise auf alle mit der form.

LÖSUNG FÜR AUSNAHME

Ok, ich werde hier schreiben, wie finden heraus, warum Django war so eine seltsame Sache.

Hier es ist eine richtige Weg, um herauszufinden, was das problem ist.

Die exception geworfen wurde, weil ich vergaß hinzuzufügen forms.py zu den from django import forms.

Kommentar zu dem Problem
Und, wenn ich remove getFloors von url.py ruft es ein Fehler von fehlt auf die nächste url in url.py... Ist das ein bug? Kommentarautor: Marco Fedele

InformationsquelleAutor der Frage Marco Fedele | 2012-11-25

Schreibe einen Kommentar