2016-08-15 4 views
0

У меня есть следующие модели:питон Джанго: ошибка при использовании встроенного 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

. Я просто пытаюсь выяснить, что я сделал не так.

ответ

0

Разве это не недостающая закрывающая скобка на этой линии?

 EquipmentInlineFormSet = inlineformset_factory(Equipment, Calibration, fields = ('cal_by', 'cal_dates', 'notes') 
+0

стыд на мне спасибо –