Мой цикл for не работает так, как ожидалось - данные не отображаются в моем шаблоне django
Я пытаюсь использовать цикл for в шаблоне Django для отображения данных, хранящихся в моделях таблицы, но по какой-то причине данные не отображаются в шаблоне.
Views.py
def add_part(request):
parts = Parts.objects.all()
context = {
"parts": parts
}
return render(request, 'admintemplate/add_parts_template.html', context)
def add_part_save(request):
if request.method != "POST":
messages.error(request, "Method Not Allowed!")
return redirect('add_part')
else:
part_name = request.POST.get('part_name')
part_type = request.POST.get('part_type')
supplier_id = request.POST.get('suppliers')
suppliers = Suppliers.objects.get(id=supplier_id)
try:
part = Parts(part_name=part_name, part_type=part_type, supplier_id=supplier)
part.save()
messages.success(request, "Part Added Successfully!")
return redirect('add_part')
except:
messages.error(request, "Failed to Add Part!")
return redirect('add_part')
models.py
Модель частей и модель услуг абсолютно одинаковы с разными названиями столбцов, поэтому я думаю, что функциональность для обеих моделей должна быть одинаковой.
Suppliers models
class Suppliers(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
Parts model
class Parts(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
part_type = models.CharField(max_length=20)
supplier_id = models.ForeignKey(Suppliers, on_delete=models.CASCADE)
Services model
class Services(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
service_type = models.CharField(max_length=20)
supplier_id = models.ForeignKey(Suppliers, on_delete=models.CASCADE)
Шаблон части
Теперь услуги в шаблоне частей вообще не отображаются. На форме нет вариантов выбора. Но для шаблона добавления услуг он отображается. Я понятия не имею, почему так происходит, потому что я использовал точно такой же код для обоих шаблонов.
Изменение вида на этот решило проблему
def add_part(request):
parts = Parts.objects.all()
context = {
"suppliers": suppliers
}
return render(request, 'admintemplate/add_parts_template.html', context)