1

私は Django models.py に以下を持っています (モデルは必要なフィールドだけに取り除かれます)

class Product(BaseProduct):
    price       = models.IntegerField()
    productfoto = models.ManyToManyField("ProductFoto", related_name="%(app_label)s_%(class)s_related")

    class Meta:
        abstract = True
        ordering = ['name']

# Inherits Product class
class ConsumerProduct(Product):
    categorie= models.ForeignKey(Categorie)
    class Meta:
        verbose_name_plural = "ConsumerProducten"


class ProductFoto(models.Model):
    myimage= FileBrowseField("Image", max_length=200, directory='producten')

そしてこれはadmins.pyにあります:

class ProductFotoInline(admin.TabularInline):
    extra = 1
    model = Product.productfoto.through

class ConsumerProductAdmin(admin.ModelAdmin):
    prepopulated_fields = {"slug": ("name",)}
    inlines= [ProductFotoInline]
admin.site.register(ConsumerProduct, ConsumerProductAdmin)

次のことに注意してください。

  • 製品クラスは抽象的です
  • ConsumerProduct は Product を継承します

これは機能するはずですが、新しい ConsumerProduct を追加しようとすると、次の ImproperlyConfigured エラーが発生します。

'model' is a required attribute of 'ConsumerProductAdmin.inlines[0]'.

どんな助けでも大歓迎です

4

1 に答える 1

0

Product クラスを非抽象化することにしました。このクラスの管理者への登録を削除する (行を削除する) ことにより、バックエンドには表示されませんが、データベースでは、 aとtableadmin.site.register(Product)の両方があるため、もう少し面倒になります。ProductConsumerProduct

于 2012-11-26T09:30:17.390 に答える