[英]Create many to many relation with query set of another model in Django
因此,我有一個包含大量問題的電子郵件模型。 現在,我希望電子郵件模型在保存模型時自動添加所有問題。
到目前為止,這是我的問題和電子郵件模型的樣子:
class Email(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=100)
slug = models.SlugField()
jobnumber = models.IntegerField()
developer = models.ForeignKey(User, related_name="developer")
questions = models.ManyToManyField('Question', related_name="questions")
checked_questions = models.ManyToManyField('Question', related_name="checked_questions")
signed_off = models.BooleanField(default=False)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
self.questions = Question.objects.all()
super(Email, self).save(*args, **kwargs)
def __unicode__(self):
return self.name
def get_absolute_url(self):
return reverse('checklists:detail', args=[str(self.slug)])
class Question(models.Model):
title = models.CharField(max_length=100)
def __unicode__(self):
return self.title
我認為這只會對self.questions = Question.objects.all()
起作用,但事實並非如此,因此任何幫助都將是很大的。
我們可以使用*questions
作為參數在保存的對象上調用.questions.add()
。
首先,我們將對象保存在數據庫中。 然后,我們使用*
選項傳遞questions
對象,以將所有questions
與email
對象相關聯。
您可以執行以下操作:
class Email(models.Model):
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(Email, self).save(*args, **kwargs) # save the object first
question_objs = Question.objects.all()
self.questions.add(*question_objs) # add all questions using *
加(* OBJ文件)
將指定的模型對象添加到相關的對象集中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.