django - 如何在 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)
解决方案
推荐阅读
- c# - EF Core ViewModel 构造函数
- flutter - 颤动的可滑动水龙头
- node.js - 使用 Node 运行简单的演示示例 google-maps-services-js 时出现问题
- python - django中的delendent下拉菜单(DJango,Python)
- python-3.x - 当在 Python 中上传一个充满关键字的 csv 文件时,有没有办法从谷歌搜索结果中获取 url?
- r - paste0 和 ifelse 作为 dplyr 中管道的一部分
- python - 如何解码视频(内存文件/字节字符串)并在python中逐帧遍历它?
- ios - iOS 13 中的归因字符串问题
- wordpress - 我的 Wordpress 网站在移动到其他页面时响应缓慢
- spring-boot - Mongo Spark Java 连接器组