2016-08-09 44 views
0

Ich kann nicht herausfinden, warum das nicht funktioniert. Was ich tun möchte, ist meine inspection_vals formset show inspeciton_val lesen und Dimensionsbeschreibung für jeden aus irgendeinem Grund django schreit mich an, dass die Beschreibung nicht für inspeciton_vals angegeben ist und Hilfe würde sehr geschätzt werden. Im Folgenden werde ich auf, was genau mehr Details gab würde ich :)Ich versuche, Formset mit zwei Modellen in Django zu arbeiten

Hier zu tun ist mein view.py

def update_inspection_vals(request, dim_id=None): 
    dims = Dimension.objects.get(pk=dim_id) 
    inspection_inline_formset = inlineformset_factory(Dimension, Inspection_vals, fields=('reading', 'description',)) 
    if request.method == "POST": 
    formset = inspection_inline_formset(request.POST, request.FILES, instance=dims) 
    if formset.is_valid(): 
     formset.save() 
     return redirect('inspection_vals') 
    else: 
    formset = inspection_inline_formset(instance=dims) 
    return render(request, 'app/inspection_vals.html', {'formset': formset}) 

models.py (mit Dimension Modell und inspection_val Modell) inspeciton_val Modell einen Fremdschlüssel hat Dimension, die zu meiner Dimension Modell verknüpft)

class Inspection_vals(models.Model): 
    created_at = models.DateField() 
    updated_at = models.DateField() 
    reading = models.IntegerField(null=True) 
    reading2 = models.IntegerField(null=True) 
    reading3 = models.IntegerField(null=True) 
    reading4 = models.IntegerField(null=True) 
    state = models.CharField(max_length=255) 
    state2 = models.CharField(max_length=255) 
    state3 = models.CharField(max_length=255) 
    state4 = models.CharField(max_length=255) 
    approved_by = models.CharField(max_length=255) 
    approved_at = models.DateField(null=True, blank=True) 
    dimension = models.ForeignKey(Dimension, on_delete=models.CASCADE, default=DEFAULT_FOREIGN_KEY) 
    serial_number = models.IntegerField(default=1) 
    #sample = models.ForeignKey(Sample, on_delete=models.CASCADE, default=DEFAULT_FOREIGN_KEY) 

class Dimension(models.Model): 
    description = models.CharField(max_length=255) 
    style = models.CharField(max_length=255) 
    created_at = models.DateField() 
    updated_at = models.DateField() 
    target = models.IntegerField() 
    upper_limit = models.IntegerField() 
    lower_limit = models.IntegerField() 
    inspection_tool = models.CharField(max_length=255) 
    critical = models.IntegerField() 
    units = models.CharField(max_length=255) 
    metric = models.CharField(max_length=255) 
    target_strings = models.CharField(max_length=255) 
    ref_dim_id = models.IntegerField() 
    nested_number = models.IntegerField() 

    met_upper = models.IntegerField() 
    met_lower = models.IntegerField() 
    valc = models.CharField(max_length=255) 

hier ist mein inspection_vals.html

{% extends "app/layout.html" %} 
{% block content %} 


<br /> 
<br /> 
<br /> 


<form method="post"> 
    {% csrf_token %} 
    {% for x in formset %} 
     {{ x.as_p }} 
    {% endfor %} 
</form> 






{% endblock %} 

Screenshot, um zu demonstrieren, was ich gerne sehen würde.

What I would like to see

+0

Nur ein Hinweis: es sollte nicht sein {% für x in formset.forms%} – steppo

Antwort

0

Sie vermissen das Management Form in Vorlage

<form method="post"> 
    {% csrf_token %} 
    {{ formset.management_form }} # important 
    {% for x in formset %} 
    {{ x.as_p }} 
    {% endfor %} 
</form>