python Django:使用内联表单时出错

2024-04-20 05:34:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下型号:

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

错误,即使我检查,以确保没有错别字左右。我只是想弄清楚我做错了什么。你知道吗


Tags: 视图iddefaultnumberifmodelsrequestpost