2

Django の管理者は、モデルとその外部キーを編集するためのフォームを簡単に作成できますが、自分のビューで ModelForm を使用している場合、これを達成するのに問題があります。admin.py の例を次に示します。

class VendorPhotoInline(admin.StackedInline):
  model = VendorPhoto
  extra = 3

class VendorAdmin(admin.ModelAdmin):
  inlines = [VendorPhotoInline]

admin.site.register(Vendor, VendorAdmin)

管理画面でベンダーを作成し、たくさんの写真を追加できるようになりました。ただし、スタッフ以外の場合は、ベンダーを作成するためのフォームがあり、管理者のような写真をアップロードできるようにしたいと考えています。

ユーザーが新しいベンダーを作成できる ModelForm を使用していますが、もちろん、この時点で写真を追加することはできません。

class VendorForm(ModelForm):
    class Meta:
        model = Vendor

ここで管理インターフェイスと同等にするにはどうすればよいですか? 新しい Vendor インスタンスでのみ機能し、特定の数 (たとえば 3) までアップロードできるソリューションに落ち着きますが、既存のインスタンスで機能し、写真を追加/削除できるソリューションも素晴らしいでしょう。助けてくれてありがとう!

4

1 に答える 1