Django метод save () не сохраняется в БД - PullRequest
0 голосов
/ 23 июня 2019

Что я делаю не так?

У меня есть две таблицы, User и Entrepreneur. Объекты не сохраняются в таблице Entrepreneur. Я даже использовал оболочку!

Я удалил базу данных и файлы миграции, и ошибка осталась прежней.

Я знаю, что подобные вопросы задавались, но я не нашел ни одного подходящего для моей ситуации.

МОИ МОДЕЛИ:

class EntrepreneurProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    mobile = models.CharField(max_length=100, blank=True, null=True)
    location = CountryField(blank=True, null=True)
    email_notif_on = models.BooleanField(default=False)
    photo = models.ImageField(upload_to='photo/%Y/%m/%d', blank=True, null=True)
    skills = TaggableManager(blank=True)
    date_joined = models.DateField(auto_now_add=True)
    accomplishnment = models.ForeignKey(Accomplishment, on_delete=models.CASCADE, null=True, blank=True)
    portfolio = models.ManyToManyField(Portfolio, blank=True)
    date_of_birth = models.DateField(blank=True, null=True)
    url = models.SlugField(unique=True)    

    def __str__(self):
        return f'{self.user}'

    def save(self, *args, **kwargs):
        if self.url:
            self.url = slugify(f'{self.user.first_name} {self.user.last_name} {str(uuid.uuid4()[:7])}')

МОИ МНЕНИЯ:

def signup(request):
    if request.method == 'POST':    
        user_form = UserCreateForm(request.POST)

        if user_form.is_valid():
            user = user_form.save(commit=False)
            user.set_password(user.password)
            user.save()

            entrep = EntrepreneurProfile.objects.create(user=user)
            entrep.save()

            print(entrep.id)
            return redirect('users:login')
    else:
        user_form = UserCreateForm()
        data = {'user_form': user_form}
        return render(request, 'users/signup.html', data)

1 Ответ

4 голосов
/ 23 июня 2019

Кажется, вы забыли вызвать super().save(*args, **kwargs) в вашем save методе, как это упоминается в https://docs.djangoproject.com/en/2.2/topics/db/models/#overriding-predefined-model-methods

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