Я пытаюсь сохранить URL в моем объекте, где находится зашифрованный идентификатор моего объекта. Таким образом, он записывает все поля и, наконец, пытается добавить URL к уже вызванному объекту. Тогда моя ошибка отображается 'TypeError: Tried to update field dashboard.Product.province with a model instance.
'
Как мне сохранить мой URL после вызова object.save ()
. Возможно, есть лучший способ получить object.id
перед вызовом object save ()
. Мне не пришлось бы сохранять тот же объект во второй раз.
Models.py
class Product(models.Model):
type = models.CharField(max_length=50)
img = models.ImageField()
img_sm = ResizedImageField(size=[400, 400], crop=['middle', 'center'], force_format='JPEG', quality=50)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
name = models.CharField(max_length=200)
description = models.TextField()
province = models.CharField(max_length=100)
city = models.CharField(max_length=100)
name_user = models.CharField(max_length=50)
phone = models.CharField(max_length=50)
date_created = models.DateTimeField(auto_now_add=True)
url = models.URLField() #aktualny url produktu
pawnshop_send = models.IntegerField(default=random_pawnshop)
def __str__(self):
return '%s - %s - %s' % (self.type, self.name, self.city)
class Meta:
ordering = ['-date_created', ]
views.py
if request.method == 'POST':
form = FormNewProduct(request.POST, request.FILES)
if form.is_valid():
cd = form.cleaned_data
object = Product()
object.type = type
object.img = cd['img']
object.img_sm = cd['img']
object.category = get_instance(cd['category'], Category)
object.name = cd['name']
object.description = cd['description']
if user_province:
object.province = user_province
else:
object.province = cd['province']
object.city = cd['city']
object.name_user = cd['name_user']
object.phone = cd['phone']
object.save()
#create my special url object
code_forwarding = code_function(object.id)
object.url = code_forwarding # it's return something like this 'https://mywebsite.com/id/11/'
object.save()