在Django Admin

时间:2018-05-28 08:41:32

标签: django python-3.x postgresql django-models django-admin

我是python和Django的新手,所以我希望我能在这里得到一些帮助。 我有一个“应用程序”,我有一些模型,如“Raum”,“Platz”和“Buchung”。英文(房间,位置和预订)。在Web应用程序中,用户可以预订房间中的位置。 这是我的3个模型。

间:

class Raum(models.Model):
    raumID = models.CharField(max_length=1, primary_key=True)
    name = models.CharField(max_length=250, default='')

位置:

class Platz(models.Model):
    platzID = models.CharField(max_length=3, primary_key=True)
    raum = models.ForeignKey(Raum, on_delete=models.CASCADE, default='')

售票:

class Buchung(models.Model):

cearted_on = models.DateTimeField(auto_now_add=True)
     user = models.ForeignKey(Mitarbeiter, on_delete=models.CASCADE, default='')
     raum = models.ForeignKey(Raum, on_delete=models.CASCADE, default='')
     platz = models.ForeignKey(Platz, on_delete=models.CASCADE, default='')

我希望能够在预订房间时选择房间和位置。但它应该只显示我选择的房间的位置。这就是我的问题,我真的不知道该怎么做。我查看了Django文档并找到了“to_field”,但我不认为这是正确的,也不起作用。

Booking in admin page.

所以你可以看到我有一个名为“seestern”的房间(raum)和一个位置(Platz),它显示了4种选择。但Room Seestern只有“A1”和“A2”。我想只显示属于房间的那些。 我怎么能这样做?

希望我得到一些帮助。 感谢。

1 个答案:

答案 0 :(得分:1)

使用https://django-autocomplete-light.readthedocs.io/en/master/tutorial.html#filtering-results-based-on-the-value-of-other-fields-in-the-form。它似乎做了你想要实现的目标。它需要您手动编写一些逻辑,但在前端仍然做得很好,因此您不必处理管理面板的JavaScript和HTML。为您建模表单并将其添加到管理类,如form=MyForm。尝试从头开始遵循文档,然后应用我提供的链接中描述的技术,因为如果你直接跳到它,你将有点不知所措。