Я хотел бы знать, как на самом деле обновить объект on пользователем, который его создал

#python #django

#python #django

Вопрос:

Я хотел бы знать, как обновить объект, который был создан пользователем (hunter). Вот модель продукта ниже:

 class Product(models.Model):
    title = models.CharField(max_length=250)
    pub_date = models.DateTimeField()
    body = models.TextField()
    image = models.ImageField(upload_to='images/')
    icon = models.ImageField(upload_to='images/')
    url = models.TextField()
    hunter = models.ForeignKey(User, on_delete=models.CASCADE)
  

Вот метод create, который предназначен для создания объекта:

 def create(request):
  if request.method == 'POST':
    if request.POST['title'] and request.POST['body'] and request.POST['url'] and request.FILES['icon'] and request.FILES['image']:
      product = Product()
      product.title = request.POST['title']
      product.body = request.POST['body']
      if request.POST['url'].startswith('http://') or request.POST['url'].startswith('https://'):
        product.url = request.POST['url']
      else:
        product.url = 'http://'   request.POST['url']
      product.icon = request.FILES['icon']
      product.image = request.FILES['image']
      product.pub_date = timezone.datetime.now()
      product.hunter = request.user
      product.save()
      return redirect('/products/'   str(product.id))
  

Не могли бы вы, пожалуйста, помочь мне создать метод обновления, чтобы только пользователь, создавший этот продукт, мог его удалить?

Комментарии:

1. У меня нет ответа, потому что ваш вопрос не очень конкретный. Однако сначала вам следует изучить использование ModelForms .

2. Посмотрите на использование общих представлений из Django docs.djangoproject.com/en/2.1/ref/class-based-views / …

3. У меня есть create.html где метод =’POST’ для формы. Мне нужно было бы создать update.html что похоже, но как его обновить, я не уверен, как

4. Если вы используете ModelForm, вам не придется по отдельности извлекать каждый атрибут из request.POST. После того, как вы отсортируете это, вы можете использовать ту же форму и шаблон для формы обновления. После настройки представления обновления у вас может быть некоторая логика, которая отклоняет или перенаправляет пользователя на основе if product.user == request.user

5. Я немного сбит с толку. итак, как только я создал этот объект и у меня есть ListView и CreateView?