Olá, estou com dúvidas de como preencher um select a partir de uma consulta do banco:
def cargo(request, id):
cargo = get_object_or_404(Cargo,pk=id)
record = {
'cargo' : cargo
}
return render(request,'cargo.html', record)
def cargo_new(request):
records = Setor.objects.all()
setores = {
'setores' : records
}
return render(request,'cargo.html', setores)
Na página html está assim:
<select class="custom-select" name="setor" id="setor">
{% for setor in setores %}
<option value="{{ setor.id }}">{{ setor.nome }}</option>
{% endfor %}
</select>
Para preencher um novo registro o select carrega corretamente, porém na edição não está carregando nada.
class Cargo(models.Model):
nome = models.CharField(max_length=50, unique=True, blank=False)
setor = models.ForeignKey(Setor, on_delete=models.CASCADE)
vagas = models.PositiveIntegerField(default=0, blank=True, null=True)
def __str__(self):
return self.nome
As urls acredito que está correto:
urlpatterns = [
path('cargos',views.cargos,name='cargos'),
path('cargo/<int:id>',views.cargo,name='cargo'),
path('cargo/save',views.cargo_save,name='cargo_save'),
path('cargo',views.cargo_new,name='cargo_new'),
path('cargo/<int:id>/delete',views.cargo_delete,name='cargo_delete'),
]
Se tiver alguma forma mais simples/recomendável de fazer o CRUD por favor me avisem.