Elias Coutinho
2016-11-13 19:20:02 UTC
Boa tarde pessoal,
Estava assistindo o vÃdeo de um colega
E por sinal está muito bom.
O problema aparece depois que eu tentei adicionar campos e editar outros.
No meu models ficou assim:
class Booking(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=
'usuário')
title = models.CharField('evento', max_length=128)
start = models.DateField('inicio')
end = models.DateField('fim')
created_on = models.DateTimeField('solicitado em', default=timezone.now)
authorized = models.BooleanField('autorizado', default=False)
class Meta:
verbose_name = 'reserva'
verbose_name_plural = 'reservas'
ordering = ('-start',)
def __str__(self):
return self.event
Já no SERIALIZER ficou assim:
from django.contrib.auth.models import User
from rest_framework import serializers
from vitrinebela.bookings.models import Booking
class BookingSerializer(serializers.HyperlinkedModelSerializer):
user = serializers.PrimaryKeyRelatedField(
read_only=False,
queryset=User.objects.all()
)
class Meta:
model = Booking
fields = ('user', 'title', 'start', 'end','created_on', 'authorized'
)
e por fim as views ficaram assim:
def list(request):
selected_date = date.today()
return list_date(request, selected_date.year, selected_date.month)
def list_date(request, year, month):
try:
selected_date = date(int(year), int(month), 1)
except ValueError:
raise Http404
context = {
'selected_date': selected_date,
'calendar': tuple(_calendar(selected_date)),
'next': selected_date + timedelta(days=31),
'previous': selected_date - timedelta(days=1)
}
return render(request, 'bookings/bookings_list.html', context)
def _calendar(selected_date):
year, month = selected_date.year, selected_date.month
filters = {'date__year': year, 'date__month': month}
bookings = {b.date: b for b in Booking.objects.filter(**filters)}
calendar = Calendar(firstweekday=6)
for week in calendar.monthdatescalendar(year, month):
yield [(day, bookings.get(day)) for day in week]
E ao rodar ele apresenta a mensagem abaixo no terminal:
*"Choices are: %s" % (name, ", ".join(available)))
django.core.exceptions.FieldError: Cannot resolve keyword 'date' intofield.
Choices are: authorized, created_on, end, id, start, title, user, user_id*
O que pode estar errado?
Estava assistindo o vÃdeo de um colega
E por sinal está muito bom.
O problema aparece depois que eu tentei adicionar campos e editar outros.
No meu models ficou assim:
class Booking(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=
'usuário')
title = models.CharField('evento', max_length=128)
start = models.DateField('inicio')
end = models.DateField('fim')
created_on = models.DateTimeField('solicitado em', default=timezone.now)
authorized = models.BooleanField('autorizado', default=False)
class Meta:
verbose_name = 'reserva'
verbose_name_plural = 'reservas'
ordering = ('-start',)
def __str__(self):
return self.event
Já no SERIALIZER ficou assim:
from django.contrib.auth.models import User
from rest_framework import serializers
from vitrinebela.bookings.models import Booking
class BookingSerializer(serializers.HyperlinkedModelSerializer):
user = serializers.PrimaryKeyRelatedField(
read_only=False,
queryset=User.objects.all()
)
class Meta:
model = Booking
fields = ('user', 'title', 'start', 'end','created_on', 'authorized'
)
e por fim as views ficaram assim:
def list(request):
selected_date = date.today()
return list_date(request, selected_date.year, selected_date.month)
def list_date(request, year, month):
try:
selected_date = date(int(year), int(month), 1)
except ValueError:
raise Http404
context = {
'selected_date': selected_date,
'calendar': tuple(_calendar(selected_date)),
'next': selected_date + timedelta(days=31),
'previous': selected_date - timedelta(days=1)
}
return render(request, 'bookings/bookings_list.html', context)
def _calendar(selected_date):
year, month = selected_date.year, selected_date.month
filters = {'date__year': year, 'date__month': month}
bookings = {b.date: b for b in Booking.objects.filter(**filters)}
calendar = Calendar(firstweekday=6)
for week in calendar.monthdatescalendar(year, month):
yield [(day, bookings.get(day)) for day in week]
E ao rodar ele apresenta a mensagem abaixo no terminal:
*"Choices are: %s" % (name, ", ".join(available)))
django.core.exceptions.FieldError: Cannot resolve keyword 'date' intofield.
Choices are: authorized, created_on, end, id, start, title, user, user_id*
O que pode estar errado?
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para django-brasil+***@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para django-brasil+***@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.