【问题标题】:Django: How to Auto-Populate a field with another two field's value in same modelDjango:如何在同一模型中使用另外两个字段的值自动填充字段
【发布时间】:2020-11-08 08:09:55
【问题描述】:

我想在我的 Django 模型中使用类别和子类别的值自动填充标签字段。我试图找到解决方案,但大多数答案都导致(从另一个模型自动填充)。但我想用同一模型中两个或多个字段的值自动填充它。

from django.db import models
from .category import cat, sub_cat

# Create your models here.


class Product(models.Model):

    product_id = models.AutoField(primary_key=True)
    product_name = models.CharField(max_length=200)
    category = models.CharField(
        max_length=50, choices=cat(), default="")
    subcategory = models.CharField(
        max_length=50, choices=sub_cat(), default="")
    brand = models.CharField(max_length=50, default="")
    desc = models.TextField(max_length=1500)
    price = models.FloatField(default=0)
    pub_date = models.DateField()
    image = models.ImageField(upload_to="shop/images", default="")
    tags = 

【问题讨论】:

    标签: python-3.x django django-models


    【解决方案1】:

    覆盖默认保存方法:

    class Product(models.Model):
        fields here     
    
        def save(self, *args, **kwargs):
            self.tags = self.category + '' + self.subcategory
            super(Product, self).save(*args, **kwargs)
    

    当调用 .save() 时,它会自动获取类别和子类别并连接。

    【讨论】:

      【解决方案2】:

      此链接应包含您要查找的信息:

      Django Model Field Default Based Off Another Field in Same Model

      在您的情况下,我认为您希望创建一个基于其他字段创建标签的函数,然后覆盖保存函数以设置标签。

      def your_function(self):
          return self.category + ', ' self.subcategory
      
      
      def save(self, *args, **kwargs):
          if not self.tags:
              self.tags= self.your_function()
          super(Subject, self).save(*args, **kwargs)
      

      【讨论】:

        猜你喜欢
        • 2021-10-05
        • 2021-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 1970-01-01
        • 1970-01-01
        • 2021-03-16
        相关资源
        最近更新 更多