0

1 つ質問があります。答えは Google では見つかりません。

だから、私は車のモデル(charフィールドのみ)とその車の写真のモデルを持っています:

class Pictures(models.Model):
    car = models.ForeignKey(Car,related_name='pictures')
    path = models.CharField(max_length=255)
    about = models.CharField(max_length=32)
    main = models.BooleanField('Main Picture')
    def __unicode__(self):
         return str(self.id)

次のことが可能です: 1 台の車に対して 4 枚の写真のみが必要です。たとえば、BMW X5 - 写真は 4 つしかなく、(管理者インターフェースから) 5 つの写真を追加することはできません。車 1 台 - 写真 4 枚 (最大)。それが可能だ?ご覧のとおり、 field がありますmain。この field=1 の画像は、スライド ショーの開始画像のようにギャラリーに表示されます。main=1しかし、私はすべての写真に追加できますが、それは間違っています。したがって、次のことが可能です。

1 car = 3 pictures(main=0) + 1 picture(main=1)

1 台の車には、pictures テーブル (4 つの画像) に 4 つの位置 (最大) があり、そのうちの 1 つだけが main=1 です。管理インターフェイスでは、1 台の車に多くの写真を追加し、すべての写真に main=1 を追加できます。どのように制限することができますか?

ありがとう

4

2 に答える 2

0
class MyModelAdmin(admin.ModelAdmin):
    ...........

    def has_add_permission(self, request):
        count = Pictures.objects.filter(main=True).count()
        if count <= 4:
            return True
        return False
于 2013-03-02T08:50:04.993 に答える