У меня есть следующие модели:питон Джанго: ошибка при использовании встроенного formset
class Equipment(models.Model):
asset_number = models.CharField(max_length = 200)
serial_number = models.CharField(max_length = 200)
class Calibration(models.Model):
cal_asset = models.ForeignKey(Equipment, on_delete = models.CASCADE)
cal_by = models.CharField(max_length = 200)
cal_date = models.DateField()
notes = models.TextField(max_length = 200)
и вид:
def default_detail (request, equipment_id):
equipment = Equipment.objects.get(id = equipment_id)
if request.method == "POST":
if 'calibration' in request.POST:
EquipmentInlineFormSet = inlineformset_factory(Equipment, Calibration, fields = ('cal_by', 'cal_dates', 'notes')
formset = EquipmentInlineFormSet(request.POST, request.FILES, instance=equipment)
if formset.is_valid():
formset.save()
return HttpResponseRedirect(reverse('calbase:default_detail', args=(post.id)))
else:
formset = EquipmentInlineFormSet(instance=equipment)
return render(request, 'calbase/default_detail.html', {'formset' : formset})
и шаблон для этой точки зрения:
<h1>{{ equipment.serial_number }}</h1>
{{equipment.serial_number}} -- {{equipment.asset_number}} <br>
calibration history:
{% for calibrations in equipment.calibration_set.all %}
<ul>
<li>
{{calibrations.cal_by}} -- {{calibrations.cal_date}} -- {{calibrations.notes}}
</li>
</ul>
{% endfor %}
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
<form method="POST" action = "{% url 'calbase:default_detail' equipment.id %}">{% csrf_token %}
{{ formset }}
<button type="submit" class="save btn btn-default" name = "calibration">Save</button>
</form>
<a href="{% url 'calbase:default' %}">Back?</a>
Это мнение просто подробный обзор оборудования, показывающий некоторую информацию (актив и серийный номер этого оборудования). Я пытаюсь добавить набор форм, который позволяет пользователю добавлять данные калибровки к этому оборудованию в этом представлении и отображать их, если они есть. Я узнал, что использование встроенного набора форм - это, вероятно, путь. Однако после выполнения documentation шаг за шагом, я имею ошибку, даже если я проверил, чтобы убедиться, что нет опечаток или так
equipmentInlineFormSet = EquipmentInlineFormSet(request.POST, request.FILES, instance=equipment)
SyntaxError: invalid syntax
. Я просто пытаюсь выяснить, что я сделал не так.
стыд на мне спасибо –