1
我想在Django管理整合未来三年相关机型:Django管理多对多的子集
# models.py
class Seminar(models.Model):
title = models.CharField(max_length=128, unique=True)
start_date = models.DateField(db_index=True)
end_date = models.DateField(db_index=True)
class Event(models.Model):
title = models.CharField(max_length=128)
start_date = models.DateTimeField(db_index=True)
end_date = models.DateTimeField(db_index=True)
seminar = models.ForeignKey('Seminar')
class Registration(models.Model):
name = models.CharField(max_length=128)
first_name = models.CharField(max_length=128)
seminar = models.ForeignKey('Seminar')
events = models.ManyToManyField('Event', null=True)
# admin.py
class EventInline(admin.TabularInline):
model = Event
class SeminarAdmin(admin.ModelAdmin):
list_display = ('title', 'start_date', 'end_date')
inlines = [
EventInline,
]
class RegistrationAdmin(admin.ModelAdmin):
list_display = ('seminar', 'name', 'first_name')
正如你所看到的,每次研讨会可能有几个事件,从Seminar
管理为内联添加条目。
我的问题是注册的,因为它们是:
- 相关的研讨会
- 可以“订阅”的这个研讨会
当然几个事件,管理员列出所有事件,而不是与研讨会相关的子集,因此:
- 是否可以从管理员(尽可能低的调整)实现这一点?
- 是
Registration
M2MEvent
适当还是应该以不同的方式将这两个模型关联?
谢谢!