社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

多对多关联如何冗余

maxspeed40k • 10 年前 • 4701 次点击  

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
 
4701 次点击  
文章 [ 3 ]  |  最新文章 10 年前