как отправить экземпляр в ModelForms и заполнить форму этим экземпляром

#python #django

#python #django

Вопрос:

У меня есть эта форма:

 class TourForm(ModelForm):
   class Meta:
       model = Tour 
  

Я хочу создать страницу редактирования, поэтому я отправляю tour_id на страницу и получаю tour с этим tour_id, теперь я хочу заполнить эту форму экземпляром tour, который у меня есть. что-то вроде этого в views.py:

 tour=Tour.objects.get(pk=tour_id)
tform = TourForm(request.POST, request.FILES,instance=tour)
  

любая помощь?

Обновить:

это модели:

 class Gallery(models.Model):
   HeadImage = models.ImageField(upload_to="gallery")

class Image(models.Model):
   Image = models.ImageField(upload_to="gallery")
   Gallery = models.ForeignKey(Gallery, related_name='images')



class Tour(models.Model):
   Name=models.CharField(max_length=100)
   Count=models.SmallIntegerField() 
   PriceUnit=models.ForeignKey(PriceUnit)
   Price=models.CharField(max_length=12)
   Description=models.TextField()
   ActionDate=models.DateTimeField(auto_now=True,editable=False)
   ActionUser=models.ForeignKey(User,editable=False)
   StatusType=models.ForeignKey(StatusType)
   Gallery = models.OneToOneField(Gallery,editable=False)
  

поля, которые являются foreigkey, такие как PriceUnit и StatusType, не заполняют форму.

заранее спасибо

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

1. извините! Теперь я обновил вопрос.

Ответ №1:

Я думаю, что вам не следует передавать запрос экземпляра nad.Публикуйте одновременно. Попробуйте сделать что-то вроде этого:

 if request.method == "POST":
    tform = TourForm(request.POST, request.FILES)
else
    tform = TourForm(instance=tour)
  

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

1. Какие-либо причины не передавать их вместе?

2. @DrTyrsa обычно потому, что это запускает проверку формы. Form({}) является недопустимой формой и будет отображать ошибки.