Django Debug in views.py
Olá pessoas, estou estudando Python e desenvolvendo um sistema com o framework Django para um setor em um colégio, inicialmente fiz o cadastro de aluno(apenas com nome por enquanto) e responsável(apenas com nome por enquanto), porém não sei como relacionar em muitos para muitos, gostaria de em uma tela, cadastrar o nome do aluno e de seu responsável e em seguida salvar ambos com o devido relacionamento.
PS: Não sei como visualizar o que recebo via POST, procurei pela internet e nada me pareceu mostrar o que quero.
Segue o que fiz até o momento:
model.py
from django.db import models
class Estudante(models.Model):
nome = models.CharField(max_length=256)
def __str__(self):
return self.nome
class Meta:
ordering = ('nome',)
class Responsavel(models.Model):
nome = models.CharField(max_length=256)
estudantes = models.ManyToManyField(Estudante)
def __str__(self):
return self.nome
class Meta:
ordering = ('nome',)
form.py
from django import forms
from .models import Estudante, Responsavel
class EstudanteForm(forms.ModelForm):
class Meta:
model = Estudante
fields = ('nome',)
class ResponsavelForm(forms.ModelForm):
class Meta:
model = Responsavel
fields = ("nome",)
views.py
from django.shortcuts import render, redirect
from .models import Estudante, Responsavel
from .forms import EstudanteForm, ResponsavelForm
def estudantes_listar(request):
estudantes = Estudante.objects.all()
return render(request, 'integral/estudantes_listar.html', {"estudantes": estudantes})
def estudante_adicionar(request):
if request.method == "POST":
estudanteform = EstudanteForm(request.POST)
responsavelform = ResponsavelForm(request.POST)
if estudanteform.is_valid():
# estudante = form.save(commit=False)
# estudante.save()
# return redirect('integral.views.estudantes_listar')
else:
estudanteform = EstudanteForm(prefix='estudante')
responsavelform = ResponsavelForm(prefix='responsavel')
return render(request, 'integral/estudante_adicionar.html', {'estudante': estudanteform, 'responsavel': responsavelform})
def responsaveis_listar(request):
responsaveis = Responsavel.objects.all()
return render(request, 'integral/responsaveis_listar.html', {"responsaveis": responsaveis})
def responsavel_adicionar(request):
if request.method == "POST":
form = ResponsavelForm(request.POST)
if form.is_valid():
responsavel = form.save(commit=False)
responsavel.save()
return redirect('integral.views.responsaveis_listar')
else:
form = ResponsavelForm()
return render(request, 'integral/responsavel_adicionar.html', {'form': form})Discussão (1)
Carregando comentários...