Django - 插入相关实例

Posted

技术标签:

【中文标题】Django - 插入相关实例【英文标题】:Django - Inserting related instance 【发布时间】:2014-01-04 23:49:08 【问题描述】:

我正在尝试更改模型自动保存和添加字段的方式。有问题的字段是外键。

代码如下:

def save(self, *args, **kwargs):
    season = Season.objects.order_by('start')[0]
    self.season = season

但它并没有添加任何东西......

它说成功,但它没有添加....

编辑: 完整代码:

class Team(models.Model):

GENDER_CHOICES = (
    ('F', 'Féminin'),
    ('M', 'Masculin'),
)

name = models.CharField(max_length=25,verbose_name="nom")
slug = AutoSlugField(unique=True,populate_from='name')
season = models.ForeignKey(Season,verbose_name="saison",editable=False)
association = models.ForeignKey(Association,verbose_name="association")
category = models.ForeignKey(Category,verbose_name="catégorie")
division = models.ForeignKey(Division,verbose_name="division")
gender = models.CharField(max_length=1,choices=GENDER_CHOICES,verbose_name="sexe")

class Meta:
    verbose_name = 'Équipe'
    verbose_name_plural = 'Équipes'

def __str__(self):  # Python 3: def __str__(self):
    return self.name

def save(self, *args, **kwargs):
    season = Season.objects.order_by('start')[0]
    self.season = season
    super(self,Team).save(*args,**kwargs)

谢谢, 阿拉

【问题讨论】:

【参考方案1】:

在“save”方法结束时,您必须调用超类“save”:

def save(self, *args, **kwargs):
    season = Season.objects.order_by('start')[0]
    self.season = season
    super(MyModelName,self).save(*args,**kwargs)

【讨论】:

嗨,我明白了:必须是类型,而不是团队。我将编辑第一篇文章以显示整个模型。 我已经交换了super的两个参数。查看更正后的代码。

以上是关于Django - 插入相关实例的主要内容,如果未能解决你的问题,请参考以下文章

如何转储 django-cms 相关内容以便与正在运行的实例一起迁移?

如何在Django中使用DeleteView显示相关项目?

如何在ListView中正确使用get_context_data来获取Django中的相关实例

django项目相关配置方法

python之路_django ORM相关补充

Django Queryset 过滤器检查相关对象是不是存在