【问题标题】:Django Admin Form Validation from QuerySet来自 QuerySet 的 Django 管理表单验证
【发布时间】:2012-05-20 12:13:57
【问题描述】:

我有这两个模型:

class Service(MelosModel):
    performer = models.ForeignKey(Performer)
    event = models.ForeignKey('Event')
    composition = models.ForeignKey(Composition)


class Event(MelosModel):
    event_type = models.ForeignKey('EventType')
    project = models.ForeignKey(Project)
    works = models.ManyToManyField(Work)
    date_of_event = models.DateTimeField()
    location = models.ForeignKey(Address)

注意:MelosModel 的所有意图和目的都与models.Model 相同。此外,Composition 扩展了 Work

问题在于,Service 管理表单中的组合列表需要根据其Event. 中的可用Works 进行验证,您如何做到这一点?

我读过有关从查询集中创建ModelChoiceField 的信息,但这无济于事,因为在提交表单之前我们不知道Event 是什么。处理这个问题的最佳方法是什么?

【问题讨论】:

    标签: django django-forms django-admin django-validation


    【解决方案1】:

    如果我理解正确,您可以在您的服务模型类上写一个clean() method 来进行自定义验证。

    【讨论】:

    • 这绝对有效。但我仍然担心我没有正确地做到这一点。对我来说,让服务集确定事件存在哪些作品会是一种更好的数据库设计,但这显然无助于验证。
    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2023-04-05
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多