как отправить экземпляр в ModelForms и заполнить форму этим экземпляром - PullRequest
0 голосов
/ 27 октября 2011

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

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

Я хочу создать страницу редактирования, поэтому я отправляю tour_id на страницу и получаю тур с этим tour_id, теперь я хочу заполнить эту форму экземпляром тура. У меня есть кое-что подобное в 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 голос
/ 27 октября 2011

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

if request.method == "POST":
    tform = TourForm(request.POST, request.FILES)
else
    tform = TourForm(instance=tour)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...