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


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

这些是我拥有的模型。我是 django 新手,所以请原谅这个相当简单的问题。我希望每个 Venue 对象都有一个从类别列表中选择的类别(即俱乐部、酒吧或成人)。所以每个类别——俱乐部、酒吧、成人——可以有很多场地,但就像我说的每个场地都有一个类别。

所以我完全接近我想要完成的事情还是这完全错误?请帮忙。谢谢

4

1 回答 1

0

Category可以有一个称为type该类型的字段,可以是字符串“俱乐部”、“酒吧”、“成人”。您也可以只拥有一个带有 char 字段的 Venue 并为其提供一组固定选择。因此,正如您所看到的,已经有几种方法可以接近您设置数据库的方式。场地可以有多个类别吗?如果是这样,您可能想使用多对多字段。我认为现在的问题之一是,如果您想添加一个新类别,则必须在代码中手动添加它。如果您选择Category只提供类型字段,则用户可以从管理员添加新类别而无需更改任何代码。

如果您想知道如何将类别实际添加到 Venue,您首先需要获取类别实例。这可以通过检索数据库中已有的数据库或创建一个新数据库来完成

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

接下来,您可以使用该类别创建一个新场地

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

将使用该类别保存一个新场地。Django文档提供了很好的参考。

于 2012-10-26T23:08:40.673 回答