首页 > 解决方案 > 如何在 django 中创建多对多字段的 slug?

问题描述

我想使用三个字段(一个字符字段和两个多对多字段)为我的模型进行后期保存,但在保存过程中出错。这是我的代码:

标题##class 产品(models.Model):

id = models.AutoField(primary_key=True)
image = models.ForeignKey(all_images, verbose_name='Product Images', on_delete=models.CASCADE, related_name='proimages')
ProductName = models.CharField(max_length=200, null=False,default="None", blank=False,verbose_name="Product Name")
CategoryName = models.ManyToManyField(category,related_name='procat', blank=False,verbose_name="Category Name")
SubcatName = models.ManyToManyField(subcategory,related_name='prosubcat', blank=False,verbose_name="Sub-category Name")

description = RichTextUploadingField(blank= False,verbose_name="Description")
price = models.IntegerField(default=100, null=True, blank=True, verbose_name='Price')

slug = models.SlugField(max_length=55, blank=True, null=True)


def get_slug(self):
    slug = self.ProductName
    try:
        for items in self.SubcatName.all():
            slug +=items.name
        try:
            for items in self.CategoryName.all():
                slug +=items.CategoryName
        except:
            pass
    except:
        pass
    return slugify(slug)

def 保存(自我,*args,**kwargs):

    if not self.slug:
        self.slug = self.get_slug()
    super(product, self).save(*args, **kwargs)

标签: djangodjango-modelsmodelmany-to-manyslug

解决方案


推荐阅读