0

モデルのロジックは次のとおりです。

  1. カテゴリー。いくつかのカテゴリがあります。各カテゴリには、複数の製品を含めることができます。
  2. 製品。いくつかの製品があります。各製品は1つのカテゴリのみを持つことができます。

モデルファイル自体に各製品がどのようなカテゴリに含まれるかを指定することはできますか?例:モデルを設定して、他には何もshirtできないようにすることはできますか?clothing

これが私がこれまでに持っているものです(それは検証されません):

class Category(models.Model):
   CATEGORY_CHOICES = (
        ('CLOTHING', 'Clothing'),
        ('FURNITURE', 'Furniture'),
   )
   category = models.CharField(choices=CATEGORY_CHOICES)


class Shirt(Product):
    category = models.ForeignKey(Category, default=CATEGORY_CHOICES.CLOTHING)

    class Table(Product):
       category = models.ForeignKey(Category, default=CATEGORY_CHOICES.FURNITURE)

私はこれが初めてです。助けてくれてありがとう!

4

3 に答える 3

1

任意のルールを使用して、保存時にモデルを検証できます。したがって、すべてのシャツが衣類のカテゴリに保存されていることを確認する検証ルールを記述します。

ユーザー入力の場合は、製品に対応する選択肢のみを提供するフォームを作成します。

幸運を!

于 2012-07-17T20:14:47.190 に答える
1

最近追加されたモデル検証の採用に時間をかけることをお勧めしますが、フォーム検証としては自動ではありませんが(clean*おそらく内部でメソッドを呼び出す必要がありますsave)、モデルおよびフォームレベルで使用できるDRY検証を取得します。

于 2012-07-17T23:54:08.933 に答える
0

呼び出し可能オブジェクトを使用して、インスタンスをデフォルト値として指定できます

このようなもの(テストされていないコード):

class Shirt(Product):

  def getClothingInstance():
    return Category.objects.get(category=Category.CATEGORY_CHOISES['CLOTHING'])

  category = models.ForeignKey(Category, default=getClothingInstance)
于 2012-07-17T20:45:09.367 に答える