2016-04-07 8 views
0

Ich habe zwei Modelle, eines lädt das andere Modell, es ist Titel in einem Auswahlfeld dynamisch. Ich habe es soweit korrigiert, dass, wenn ich ein neues Objekt zu dem Modell hinzufüge, aus dem die Titel verwendet werden, indem die Auswahlliste in der init-Methode aktualisiert wird, die Auswahlliste sofort aktualisiert wird. Aber wenn ich mich entscheide, es als Option zu wählen und es zu speichern, bekomme ich: Wählen Sie eine gültige Auswahl. Beispiel ist keine der verfügbaren Auswahlmöglichkeiten. Wenn ich den Server neu starten funktioniert es, was ich tat:Django Feldauswahl nicht richtig aktualisiert

Modell:

class Assessment(models.Model): 
    title = models.CharField(max_length=200) 

    SPECIFIC_REQUIREMENTS_CHOICES =() 
    SPECIFIC_REQUIREMENTS_CHOICES_LIST = [] 

    for sRequirement in SpecificRequirements.objects.all(): 
     SPECIFIC_REQUIREMENTS_CHOICES_LIST.append((sRequirement.title, sRequirement.title)) 

    SPECIFIC_REQUIREMENTS_CHOICES = SPECIFIC_REQUIREMENTS_CHOICES_LIST 

    sRequirementChoice = models.CharField(max_length=200, choices=SPECIFIC_REQUIREMENTS_CHOICES, 
           default='') 

Formen:

class AssessmentForm(forms.ModelForm): 
    class Meta: 
     model = Assessment 
     fields = ['title', 'sRequirementChoice'] 

    def __init__(self, *args, **kwargs): 
     super(AssessmentForm, self).__init__(*args, **kwargs) 
     SPECIFIC_REQUIREMENTS_CHOICES_LIST = [] 

     for sRequirement in SpecificRequirements.objects.all(): 
      SPECIFIC_REQUIREMENTS_CHOICES_LIST.append((sRequirement.title, sRequirement.title)) 

     SPECIFIC_REQUIREMENTS_CHOICES = SPECIFIC_REQUIREMENTS_CHOICES_LIST 

     self.fields['sRequirementChoice'].choices = SPECIFIC_REQUIREMENTS_CHOICES 
+0

Warum machst du das? Warum benutzt du keinen ForeignKey? –

Antwort

1

, das nicht ist, wie Modell Auswahl arbeiten. Sie sollten die Auswahlen in Modellen nicht dynamisch auffüllen.

Sie sollten in Ihrem Modell eine ForeignKey-Beziehung mit SpecificRequirements verwenden.

+0

Könnten Sie mich bitte mit einem Beispiel oder einem Link zu einem Beispiel in die richtige Richtung führen? – DaViDa

+0

starten Sie hier: https://docs.djangoproject.com/en/1.9/ref/models/fields/#foreignkey – v1k45

+0

danke für Ihre Hilfe! – DaViDa