TypeError: попытался обновить поле dashboard.Product.province с экземпляром модели - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь сохранить 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...