CreateView возвращает «Experience.id_auth_user» должен быть экземпляр «AuthUser» - PullRequest
0 голосов
/ 11 июня 2019

Я создаю CRUD на Django, у меня есть таблица пользователей и таблица опыта, у каждого пользователя может быть несколько событий, поэтому я хочу назначить идентификатор пользователя новому опыту.Когда я пытаюсь сделать это, я получаю сообщение об ошибке «Experience.id_auth_user» должен быть экземпляром «AuthUser». "

Models.py

class AuthUser(models.Model):
    password = models.CharField(max_length=128)
    last_login = models.DateTimeField(blank=True, null=True)
    is_superuser = models.BooleanField()
    username = models.CharField(unique=True, max_length=150)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=150)
    email = models.CharField(unique=True, max_length=254)
    is_staff = models.BooleanField()
    is_active = models.BooleanField()
    date_joined = models.DateTimeField()
    perfil_photo = models.CharField(max_length=150, blank=True, null=True)
    cel_number = models.CharField(max_length=150, blank=True, null=True)
    date_of_birth = models.DateTimeField(blank=True, null=True)
    location = models.CharField(max_length=150, blank=True, null=True)
    gender = models.CharField(max_length=150, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'auth_user'
class Experience(models.Model):
    experience_name = models.CharField(max_length=255, blank=True, null=True)
    description = models.CharField(max_length=255, blank=True, null=True)
    created_at = models.DateTimeField(blank=True, null=True)
    minimum_age = models.IntegerField(blank=True, null=True)
    duration = models.IntegerField(blank=True, null=True)
    price = models.FloatField(blank=True, null=True)
    id_auth_user = models.ForeignKey(AuthUser, models.DO_NOTHING, db_column='id_auth_user', blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'experience'

views.py

class ExperienceCreate(CreateView):
    model = Experience
    fields = ['experience_name','description','duration','price']
    def form_valid(self, form):
#        form.instance.id_auth_user = Experience.objects(id_auth_user=self.request.user.id)
        #instance_experience = Experience.object.id(id_auth_user=self.request.user.id)
        #form.instance.id_auth_user = self.request.user
        self.object = form.save(commit=False)
        self.object.id_auth_user = self.request.user.id
        self.object.save()
        return HttpResponseRedirect(self.get_success_url())
    def get_success_url(self):
        return reverse('experience')

есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...