2017-08-20 5 views
0

Ich habe ein ModelChoice-Feld in meiner Django-Modell-Klasse, deren Auswahl basiert auf einem anderen Modell Werte. Jedes Mal, wenn ich dem letzteren Modell neue Einträge hinzufüge, spiegelt der Wert meine Seite nicht wider, bis ich den Server neu starte. unten ist mein Code:Wie neu laden Django Modell

from multiselectfield import MultiSelectField 
class FirstModel(models.Model): 
    choices = [(x.pk,x.subject_title) for x in Subject.objects.all()] 
    choices = tuple(choices) 
    subjects_to_offer = MultiSelectField(choices=choices) 

class Subject(models.Model): 
    # field declarations 

jetzt jede i Zeit den Betreffs aktualisieren, werden die Werte nicht auf der Seite beziehen, bis ich den Server neu starten. bitte, wie lade ich das erste modell neu, ohne den server neu zu starten. Viele Tanks P.S das MultiSelectField ist Paket von https://github.com/goinnn/django-multiselectfield es ist wie ein Auswahlfeld, außer es hat einige zusätzliche Funktionen. Wenn ich nur eine Möglichkeit finde, die Modelle neu zu laden, ohne den Server neu zu starten, dann geht es mir gut

Antwort

0

Yup von Entwurf, es kann nicht auf diese Weise gelöst werden.

Die bessere Sache wäre, ein einfaches M2M-Feld in Modellen zu verwenden und eine benutzerdefinierte Funktion zu schreiben, um es zu speichern, wie Sie wollen, und im Frontend, Vorkehrungen für die Auswahl der maximalen Anzahl von Feldern treffen.

In diesem Fall werden die Auswahlmöglichkeiten erstellt, wenn das Programm initiiert oder der Code kompiliert wird. Wenn Sie keine andere Option haben, können Sie this link folgen. Grundsätzlich müssen Sie den Server bei save() erneut ausführen. In diesem Beispiel wird das sowohl für den Entwickler- als auch für den Produktionsserver (apache/wsgi) erläutert.