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.
Nur ein Hinweis: es sollte nicht sein {% für x in formset.forms%} – steppo