django - 如何在我的博客中使用 ManyToManyField 作为标签
问题描述
我想tags
在我的文章中添加,当用户点击某个标签时,它将显示所有具有该标签的文章,所以我创建标签模型然后我添加ManyToManyField
字段mobile model
那么接下来呢?我的意思是当我在管理面板中添加一些标签时如何使用标签以及如何为每个标签创建 html 页面?
模型.py:
# Tag model
class Tag(models.Model):
PostTagName = models.CharField(max_length=100)
slug = models.SlugField(default="",blank=True,unique=True,editable=True)
def save(self, *args, **kwargs):
if not self.id or not self.slug:
super(Tag, self).save(*args, **kwargs)
self.slug = slugify(f"{self.PostTagName}")
super(Tag, self).save(*args, **kwargs)
def __str__(self):
return self.PostTagName
# mobile model
class Mobile(models.Model):
title = models.CharField(max_length=100,default="")
name = models.CharField(max_length=100,default="")
app_contect = RichTextField(blank=True,null=True)
app_image = models.ImageField(upload_to='images/',null=True, blank=True)
post_date = models.DateTimeField(auto_now_add=True, null=True, blank=True)
post_tag = models.CharField(max_length=50,default="",choices = MOBILE_SECTION)
tag = models.ManyToManyField(Tag)
NETWORK = models.TextField(max_length=240,default="")
LAUNCH = models.TextField(max_length=240,default="")
BODY = models.TextField(max_length=240,default="")
DISPLAY = models.TextField(max_length=240,default="")
PLATFORM = models.TextField(max_length=240,default="")
MEMORY = models.TextField(max_length=240,default="")
MAIN_CAMERA = models.TextField(max_length=240,default="")
SELFIE_CAMERA = models.TextField(max_length=240,default="")
SOUND = models.TextField(max_length=240,default="")
COMMS = models.TextField(max_length=240,default="")
FEATURES = models.TextField(max_length=240,default="")
BATTERY = models.TextField(max_length=240,default="")
Colors = models.TextField(max_length=240,default="")
Price = models.CharField(max_length=240,default="")
objects = SearchManager()
slug = models.SlugField(default="",blank=True,unique=True,editable=True)
def save(self, *args, **kwargs):
if not self.id or not self.slug:
super(Mobile, self).save(*args, **kwargs)
self.slug = slugify(f"{self.title}")
super(Mobile, self).save(*args, **kwargs)
def get_image(self):
if self.app_image and hasattr(self.app_image, 'url'):
return self.app_image.url
else:
return '/path/to/default/image'
def __str__(self):
return self.name
class Meta:
ordering = ('-post_date',)
解决方案
推荐阅读
- php - 在使用 php 在 htaccess 中重写 url 后,无法在页面加载时从 cookie 中检索数组
- webpack - Webpack 动态 import() 和代理缓存
- java - 编写 WSDL 绑定
- c# - 从国际电话代码中查找区域设置
- python-3.x - 如何以pythonic方式从两个向量中获取以下矩阵?
- laravel-5 - 在 where 方法中使用原始查询会在查询生成中出错
- ios - 在 iOS ViewControllers 中替换部分功能的好策略
- c# - asp页面中的ajax返回500
- javascript - 在 Google 引擎中使用 For 循环并输出图表或值表
- python - Numpy找到两个二维ndarray的协方差