Django模型选择基于另一个模型

时间:2017-11-03 00:24:18

标签: python html django forms model

对不起,如果这令人困惑,我对Django仍然有点绿。所以基本上我有两个模型,我希望从一个选择中选择另一个模型的所有选择。所以基本上:

class Show(models.Model):

venue = models.CharField(max_length=100, choices = VENUE NAME)

class Venues(models.Model):
Name = models.CharField(max_length=100)

基本上我希望场地有一个输入该模型的场地名称列表。这可能吗?

2 个答案:

答案 0 :(得分:0)

在您的情况下,您应该使用many-to-one ForeignKey

它可让您从Venues对象访问Show对象,只需将其添加到模型中即可。

class Show(models.Model):
    venue = models.ForeignKey('Venues', on_delete=models.CASCADE)

class Venues(models.Model):
    name = models.CharField(max_length=100)

要获得您的选择,您可以使用:

Venues.objects.all()

然后您唯一需要的是将对象或ID添加到Show对象并保存。

选择也很好,但在这种情况下不是。例如,当你需要一些const并给用户这样的选择:

class Show(models.Model):
    VENUES_CHOICES = (
        (RESTAURANT, 'restaurant'),
        (PUB, 'pub'),
    )

    venues = models.IntegerField(choices=VENUES_CHOICES, default=RESTAURANT)

我认为在订单状态下使用它非常棒。

答案 1 :(得分:0)

在 Venues 模型中添加这样的 str def 就可以了

def __str__ (self):
    return self.name