【问题标题】:Django - Inserting related instanceDjango - 插入相关实例
【发布时间】: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)

谢谢, 阿拉

【问题讨论】:

    标签: python django django-models save


    【解决方案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的两个参数。查看更正后的代码。
    猜你喜欢
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    相关资源
    最近更新 更多