Flavio, bom dia!
Com relação ao curso de PYTHON, pretendo fazer em breve, mas no momento, não tenho condições financeiras.
Gostaria muito que você me ajudasse nesta implemetação da forma mais simples que você puder, sem tomar muito o seu tempo. É uma atividade de pós-graduação que tenho que entregar dia 30/11.
Implementei também as funcionalidades da classe perfil, para editar e adicionar uma perfil, adicionei alguns perfis de jornalista e editor, agora preciso que somente o perfil jornalista possa adicionar uma noticia, e que somente o editor possa editar e aprovar está noticia.
O jornalista tera acesso a listagem de noticias e podera adicionar noticias.
O editor tera acesso a listagem de noticias mas não tem a permissão de adicionar, somente editar e aprovar uma noticia, para ser exibida para o visitante.
Tentei testar o cargo (if) nas views, mas não deu, poderia me dizer como fazer isto.
Coloquei aspas no inicio e fim dos blocos, não sei se vai dar.Posso enviar o projeto pra você, está funcionando.
O arquivo models.py:
'''from django.db import models'''
'''class Perfil(models.Model):
nome = models.CharField(max_length=255, null=False)
email = models.CharField(max_length=255, null=False)
telefone = models.CharField(max_length=15, null=False)
cargo = models.CharField(max_length=255, null=False)'''
'''class Noticia(models.Model):
titulo = models.CharField(max_length=255, null=False)
data = models.DateField(null=False)
hora = models.TimeField(null=False)
conteudo = models.TextField(null=False)'''
perfis = models.ManyToManyField(Perfil)
O arquivo views.py:
'''from django.http import HttpResponse
from django.shortcuts import render, render_to_response
from noticias.models import Noticia, Perfil
from django.template import RequestContext
from noticias.forms import FormNoticia, FormPerfil'''
'''def index(request):
return render(request, 'index.html', {'noticias': Noticia.objects.all()})'''
'''def listaNoticia(request):
return render(request, 'listanoticia.html', {'noticias': Noticia.objects.all()})'''
'''def listaPerfil(request):
return render(request, 'listaperfil.html', {'perfis': Perfil.objects.all()})'''
'''def exibirNoticia(request, noticia_id):
noticia = Noticia.objects.get(id=noticia_id)
return render(request, 'noticia.html', {'noticia': noticia})'''
'''def exibirPerfil(request, perfil_id):
perfil = Perfil.objects.get(id=perfil_id)
return render(request, 'perfil.html', {'perfil': perfil})'''
def aprovarNoticia(request, noticia_id):
noticia = Noticia.objects.get(id=noticia_id)
return render(request, 'aprovanoticia.html', {'noticia': noticia})
'''def editarNoticia(request, noticia_id):
noticia = Noticia.objects.get(id=noticia_id)
if request.method == "POST":
form = FormNoticia(request.POST, request.FILES, instance=noticia)
if form.is_valid():
form.save()
return render_to_response('salvo.html', {})
else:
form = FormNoticia(instance=noticia)
return render(request, 'editanoticia.html', {'form': form},
context_instance=RequestContext(request))'''
'''def editarPerfil(request, perfil_id):
perfil = Perfil.objects.get(id=perfil_id)
if request.method == "POST":
form = FormPerfil(request.POST, request.FILES, instance=perfil)
if form.is_valid():
form.save()
return render_to_response('perfilsalvo.html', {})
else:
form = FormPerfil(instance=perfil)
return render(request, 'editaperfil.html', {'form': form},
context_instance=RequestContext(request))'''
'''def adicionarNoticia(request):
if request.method == "POST":
form = FormNoticia(request.POST, request.FILES)
if form.is_valid():
form.save()
return render_to_response('salvo.html', {})
else:
form = FormNoticia()
return render_to_response('adicionanoticia.html', {'form': form},
context_instance=RequestContext(request))'''
'''def adicionarPerfil(request):
if request.method == "POST":
form = FormPerfil(request.POST, request.FILES)
if form.is_valid():
form.save()
return render_to_response('perfilsalvo.html', {})
else:
form = FormPerfil()
return render_to_response('adicionaperfil.html', {'form': form},
context_instance=RequestContext(request))'''