3
我正在写一个画廊字段。该字段的子类ManyToManyField
并添加了自己的ajax控件和内容。我想让这个解决方案尽可能紧凑(我的意思是 - 如果可能,我想写一点代码在其他项目中重新实现)。Django ManyToMany通用“通过”模型
我决定创建一个中间表(即提供“通过”参数ManyToManyField
),将举行订货信息:
class IntermediateModel(models.Model):
from_content_type = models.ForeignKey(ContentType)
from_object_id = models.PositiveIntegerField()
from_content_object = generic.GenericForeignKey('from_content_type', 'from_object_id')
to_content_type = models.ForeignKey(ContentType)
to_object_id = models.PositiveIntegerField()
to_content_object = generic.GenericForeignKey('to_content_type', 'to_object_id')
order = models.PositiveIntegerField()
将出现下列问题:
- 是有可能在django中有一个通过m2m的“through”模型,这两个模式的外键都指向一个通用关系(如上面那样)?如果是这样 - 如何实现这一目标?
- 如果可以做到这一点 - 这样的模型可以保持超过一个m2m字段之间的通用关系吗? Like:类< - >中级< - >学生,图库< - >中级< - >照片 - 两种都使用Intermediate作为'through'模型?
- 编辑:刚刚测试 - 我可以;)我可以使用抽象类与“通过”表?我想通了 - 如果上述复杂的方案将不会工作,我可以只创建一个提供订货两个抽象类和一些其他的东西,然后总是创造正常的子类,以真正建立一些关系:)
我想在中间模型中有订单字段。我想创建一个通用的plug'n'play GalleryField。具有泛型中间模型会让我省下一些沉重的元类修补(自动创建中间表)。以下是实现此目的的一些基本步骤(imaging.fields.GalleryField和imaging.models中的模型摘要)https://github.com/pielgrzym/django-imaging.git – pielgrzym