Py学习  »  Django

多对多关联如何冗余

maxspeed40k • 10 年前 • 4671 次点击  

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)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/365
 
4671 次点击  
文章 [ 3 ]  |  最新文章 10 年前