KRH*_*KRH 5 python django django-forms django-admin
我有一个模型,OrderedList,它是一个用户订购的内容对象的列表.OrderedList有几个属性,包括它所属的站点.
内容对象通过OrderedListRow类附加到它上面,该类通过admin中的内联formset进入OrderedList的管理员.
class OrderedList(GenericList):
objects = models.Manager()
published = GenericListManager()
class OrderedListRow(models.Model):
list = models.ForeignKey(OrderedList)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveSmallIntegerField()
content_object = generic.GenericForeignKey("content_type", "object_id")
order = models.IntegerField('order', blank = True, null = True)
Run Code Online (Sandbox Code Playgroud)
(OrderedList从较大的GenericList摘要继承站点字段).
这是我的问题; 当用户保存管理表单时,我想验证每个OrderedListRow映射到的每个内容对象属于OrderedList所执行的同一站点(该列表只能属于1个站点;内容对象可以属于多个).
我可以覆盖OrderedList的管理表单的clean(),但它不包含包含OrderedListRows的内联formset,因此它无法访问该数据.我可以覆盖OrderedListRows的内联formset的干净,但它无法到达列表.我需要在表单验证的上下文中使用某种方式来访问OrderedList的表单数据和表单集的表单数据,这样我就可以针对OrderedList的站点检查OrderedListRow的内容对象的所有站点,如果出现问题则抛出验证错误.到目前为止,我还没有找到包含OrderedRow和OrderedListRows的清理数据的函数.