Битый день уже пытаюсь воспользоваться AutoOneToOneField, но как-то безуспешно.
Кто-нибудь сможет подсказать где я ошибаюсь и что делаю не так?
models.pyfrom task.fields import AutoOneToOneField
from django.contrib.auth.models import User, UserManager
class Profile(models.Model):
user = AutoOneToOneField(User, primary_key=True)
task_count = models.IntegerField('Выполнено задач', blank=True, default=0)
class Meta:
verbose_name = 'Профиль'
verbose_name_plural = 'Профили'
fields.pyfrom django.db.models import OneToOneField
from django.db.models.fields.related import SingleRelatedObjectDescriptor
class AutoSingleRelatedObjectDescriptor(SingleRelatedObjectDescriptor):
def __get__(self, instance, instance_type=None):
try:
return super(AutoSingleRelatedObjectDescriptor, self).__get__(instance, instance_type)
except self.related.model.DoesNotExist:
obj = self.related.model(**{self.related.field.name: instance})
obj.save()
return obj
class AutoOneToOneField(OneToOneField):
def contribute_to_related_class(self, cls, related):
setattr(cls, related.get_accessor_name(), AutoSingleRelatedObjectDescriptor(related))
views.py для проверкиdef index(request):
profile = Profile.objects.get(pk=1)
return HttpResponse(profile)
В итоге получаю на выдачу:
Django Version: 1.6
Exception Type: DoesNotExist
Exception Value:
Profile matching query does not exist.