0
我有以下型号:我在提交表单时如何创建同一模型的多个实例?
class EventType(models.Model):
name = models.CharField(max_length=128)
class Event(models.Model):
event = models.ForeignKey(EventType, null=True, blank=True)
name = models.CharField(max_length=128)
is_multiple = models.BooleanField(default=False)
father_event = models.ForeignKey('self', null=True, blank=True)
event_multiple = models.ManyToManyField(EventType, null=True, blank=True)
def save(self, *args, **kwargs):
if self.name == None or self.name == '':
self.name = self.event.name + ' - blabla'
super(Event, self).save(*args,**kwargs)
我需要两个关系从事件类型到事件,因为如果is_multiple = True
,我要添加多个事件类型。
基本上,如果一个事件是多个事件,它包含很多事件。所以,我需要为表单中选中的每个EventType
创建一个新事件。例如:
MultiEvent 1, is_multiple = True:
In the form, selects 3 EventType = TypeA, TypeB, TypeC
When I save, it creates 3 Events = TypeA - blabla, TypeB - blabla, TypeC - blabla
Each of those events has father_event = MultiEvent 1
我需要帮助来实现这一点。也许你知道一个更好的方法来做到这一点。
任何帮助,将不胜感激。
谢谢。
不能弄死你用'is_multiple'和'event_multiple',只是有一个叫'types'一个'ManyToMany'场? – DaveBensonPhillips
不,因为我使用'is_multiple'作为其他东西(模板,视图,过滤器等)。也许使用'event'和'event_multiple',但是当'is_multiple'为false时,它应该只有一个引用与'EventType' @ user3697163 –
如果设置is_multiple作为模型的属性,返回True,如果类型的数量是> 1? – DaveBensonPhillips