django新手,
以下代码希望保存Tag的时候,自动冗余category.id以及info.publish_time到tagrelate。
实际没有保存到。或者有更好的办法,请指教。
from django.db import models
from DjangoUeditor.models import UEditorField
class Category(models.Model):
name = models.CharField('名称', max_length=20)
position = models.IntegerField('顺序')
create_time = models.DateTimeField('创建时间', auto_now_add=True)
def __str__(self):
return self.name
class Meta:
verbose_name_plural = '分类'
class Tag(models.Model):
name = models.CharField('名称', max_length=20)
position = models.IntegerField('顺序')
category = models.ForeignKey(Category, 'id', verbose_name='类别')
create_time = models.DateTimeField('创建时间', auto_now_add=True)
def __str__(self):
return self.name
class Meta:
verbose_name_plural = '标签'
class Info(models.Model):
tags = models.ManyToManyField(Tag, verbose_name='标签', related_name='infos', through='TagRelate')
title = models.CharField('标题', max_length=20)
content = UEditorField('内容', default='', imagePath="upload/images/", filePath='upload/images/', imageManagerPath="upload/", toolbars='simple',
height=80, options={"elementPathEnabled": False, "autoHeightEnabled": True, "wordCount": False})
views = models.TextField('浏览量', default=0)
publish_time = models.DateTimeField('发布时间')
create_time = models.DateTimeField('创建时间', auto_now_add=True)
update_time = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.title
class Meta:
verbose_name_plural = '资讯'
class TagRelate(models.Model):
tag = models.ForeignKey('Tag')
info = models.ForeignKey('Info')
date_added = models.DateTimeField(null=True)
category = models.PositiveIntegerField(null=True)
auto_created = True
def save(self, *args, **kwargs):
self.date_added = self.info.
publish_time
self.category = self.tag.category.id
super(TagRelate, self).save(*args, **kwargs)