Я пытаюсь переопределить метод save() для моей модели статьи. Я делал то же самое несколько раз, и все было в порядке. Но за это время поднялась ошибка значения.Django model save() метод overriding cause ValueError
Мой класс: журнал
class Article(models.Model):
title = models.CharField(max_length=500)
body = models.TextField(max_length=50000)
url = models.CharField(max_length=500, null=True)
def save(self, *args, **kwargs):
self.url = self.title
self.url.lower()
self.url.replace(' ', '_')
super(Article, self).save(*args, **kwargs)
Ошибка:
>>> a = Article("Title 1", "text")
>>> a.save()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/user/django/project/apps/articles/models.py", line 19, in save
super(Article, self).save(*args, **kwargs)
File "/home/user/.virtualenvs/dj18/local/lib/python2.7/site-packages/django/db/models/base.py", line 710, in save
force_update=force_update, update_fields=update_fields)
...
File "/home/user/.virtualenvs/dj18/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 985, in get_prep_value
return int(value)
ValueError: invalid literal for int() with base 10: 'Title 1'
Дайте модели descprtion и укажите, как вы создаете объект 'a' для лучшей ясности. – nu11p01n73R
Является ли это целым полем и вы передаете строковый объект? –
Попробуйте передать объект в упрощенную модель формы, чтобы увидеть список ошибок –