1
class Venues(models.Model):
        ..........
        ..........
        category=models.ForeignKey(Category)


class Category(models.Model):
     club=models.CharField()
     bar=models.CharField()
     adult=models.CharField()

これらは私が持っているモデルです。私はdjangoの初心者なので、このかなり単純な質問はご容赦ください。すべてのVenueオブジェクトに、カテゴリのリスト(つまり、クラブ、バー、または大人)から選択された1つのカテゴリを持たせたいです。したがって、各カテゴリ(クラブ、バー、大人)には多くの会場を含めることができますが、前述したように、すべての会場には1つのカテゴリがあります。

だから私は私が達成しようとしていることにまったく近いですか、それともこれは完全に間違っていますか?助けてください。ありがとう

4

1 に答える 1

0

Categoryそのタイプと呼ばれる1つのフィールドをtype、「club」、「bar」、「adult」のいずれかの文字列にすることができます。また、charフィールドのある会場を用意して、固定された選択肢のセットを指定することもできます。ご覧のとおり、データベースの設定方法にはすでにいくつかの方法があります。会場に複数のカテゴリを含めることはできますか?もしそうなら、多対多フィールドを使用したいかもしれません。新しいカテゴリを追加したい場合は、コードに手動で追加する必要があるという問題の1つが今あると思います。タイプフィールドのみを選択した場合Category、ユーザーはコードを変更せずに管理者から新しいカテゴリを追加できます。

会場に実際にカテゴリを追加する方法がわからない場合は、最初にカテゴリインスタンスを取得する必要があります。これは、データベースにすでにあるものを取得するか、新しいものを作成することで実行できます。

category = Category.objects.get(pk=1)

次に、そのカテゴリを使用して新しい会場を作成できます

new_venue = Venue(category=category, other_args)
new_venue.save()

カテゴリで新しい会場を保存します。Djangoのドキュメントは優れたリファレンスを提供します。

于 2012-10-26T23:08:40.673 に答える