-> 'views.py':PRIMARY KEY должна быть уникальной ошибки (Джанго)
def upload_event_image(request):
if request.method=="POST":
if request.FILES:
fest=get_object_or_404(Fest, pk=request.POST.get('fest_pk'))
if fest is not None:
event = Event.objects.create(
author = request.user,
fest = fest,
)
event.save()
if event:
photo= Photo.objects.create(
image = request.FILES['file'],
album = event //This line causes the error
)
photo.save()
return HttpResponse()
return HttpResponse()
-> model.py:
class Event(models.Model):
title = models.CharField(max_length=60, blank=True)
description = models.TextField(blank = True)
fest = models.ForeignKey(Fest)
pub_date = models.DateTimeField(default=datetime.datetime.now)
author = models.ForeignKey(User)
def __unicode__(self):
return self.description
def has_upvoted(self, user):
return user
class Photo(models.Model):
title = models.CharField(max_length=60 , blank= True, null = True)
image = models.ImageField(upload_to='site-media/media/images/')
thumbnail = models.ImageField(upload_to="site-media/media/images/thumbs/", blank=True, null=True)
thumbnail2 = models.ImageField(upload_to="site-media/media/images/thumbs2/", blank=True, null=True)
pub_date = models.DateTimeField(auto_now_add=True)
album = models.ForeignKey(Event)
Когда я сделать запись в вышеприведенном зрения я get 'ПЕРВИЧНЫЙ КЛЮЧ должен быть уникальным'. Что я делаю не так? Это строка «album = event», которая вызывает ошибку.
Окончательное решение после коррекции:
def save(self, force_insert=False, force_update=False, **kwargs):
"""Save image dimensions."""
super(Photo, self).save(force_insert, force_update, **kwargs)
im = PImage.open(pjoin(MEDIA_ROOT, self.image.name))
self.width, self.height = im.size
self.create_thumbnail()
force_insert = False
force_update = True
super(Photo, self).save(force_insert, force_update, **kwargs)
У вас есть автоинкремент, установленный в поле основного ключа? –
Его там по умолчанию правильно? – toothie
Было бы разумно проверить. Также см. Эту ссылку https://groups.google.com/forum/#!topic/django-users/ALDujJRr0Ko –