說明Django的覆蓋模型保存方法將未指定字段設置爲null
我在eiysTblModels的我的模型延伸,因爲我們使用的inspectdb Django的manage.py的選項。由於它覆蓋了models.py,我們不會觸摸models.py,而是將我們的擴展寫入eiysTblModels。
問題
無論如何,當我打電話edit_group功能,它正確地設置蛞蝓和日期作爲規定,但它會覆蓋其他領域,如IS_ACTIVE,isapproved等爲NULL,最初被設置爲1。
vieys.py
def edit_group(request,group_id):
groupinfo = request.POST
group = eiysTblGroup(id = group_id)
group.name = groupinfo.get('group-name','')
group.save()
eiysTblModels.py
class eiysTblGroup(TblGroup):
class Meta:
proxy = True
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
if not self.id:
self.date_created = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
self.isactive = 1
self.date_last_modified = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
super(TblGroup, self).save(*args, **kwargs)
models.py
class TblGroup(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=250, blank=True)
date_created = models.DateTimeField(blank=True, null=True)
date_last_modified = models.DateTimeField(blank=True, null=True)
creator = models.ForeignKey(AuthUser, blank=True, null=True)
group_photo_url = models.CharField(max_length=250, blank=True)
isactive = models.IntegerField(blank=True, null=True)
slug = models.CharField(max_length=250, blank=True)
code = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'tbl_group'
摘要
基本上,我需要的是自動更新date_last_modified,DATE_CREATED和蛞蝓當我救他們,不更新任何其他部分爲NULL。
謝謝你的反應速度快,但我想設置塞過了,也許我會被要求做更多如有必要,將來會有變化。 –
我用slu updated更新了答案。希望能幫助到你! – Nhor