2016-04-29 17 views
0

私はDjango 1.7.11とPython 2.7を使用します。私は2つのモデルを持っています:Django。テンプレートのモデルの既存のインスタンスを持つインラインフォームセット

class Adv(models.Model): 
    title = models.CharField(max_length=255, blank=True) 
    description = models.TextField(blank=True) 

class ImageFile(models.Model): 
    file = models.ImageField(upload_to=generate_imgname, max_length=50, blank=True) 
    adv = models.ForeignKey(Adv) 

Advのインスタンスは10のイメージファイルを持つことができます。 ImageFileは管理者のインラインです。私は、すべての画像ファイルと画像ファイルを削除するか、またはチャンスをフォームとする必要がありますとAdvのインスタンスを表示するテンプレートで必要です。 これを行うにはどうすればよいですか?私はinlineformset_factoryを試しましたが、既存の画像ファイルのないファイル入力のフォームしか表示されません。

答えて

2

formsetを試しましたか? https://docs.djangoproject.com/en/1.7/topics/forms/modelforms/#model-formsets これを試してください。私はそれを試してhaventしかし、私は私のプロジェクトで似たようなことをし、それは働いた。私はそれが助けて欲しいあなたのviews.pyで

forms.py

class AdvForm(ModelForm): 
class Meta: 
    model = Adv 
    fields = ['title','description'] 

class ImageFileForm(ModelForm): 
class Meta: 
    model = ImageFile 
    fields = ['file','adv'] 

ADV

def getAdv(request, adv_instance_id): 
adv = get_object_or_404(Adv, pk = adv_instance_id) 
ImgFileformSet = modelformset_factory(ImageFile, form = ImageFileForm) 

if request.method == 'POST': 
    Adv = AdvForm(request.POST, instance=adv) 
    ImgFiles = ImgFileformSet (request.POST, queryset = ImageFile.objects.filter(adv=adv_instance_id), prefix='images',) 
// your code 

return render(request, 'yourtemplate', {'adv_instance_id','Adv','ImgFiles'}) 

およびテンプレート内のデータを表示するのインスタンスを渡すような何かを。

+0

ありがとうございました。 – Swallow

関連する問題