当前位置: 首页 > news >正文

智慧教育白帽seo

智慧教育,白帽seo,织梦怎么制作网站,2018年网站建设django中定义对于某个文章应用的数据库中使用到记录修改次数的这个字段 如models.py中的配置 from django.db import models from django.utils import timezone from django.contrib.postgres.fields import ArrayFieldclass Article(models.Model):# Titlestitle_cn model…

在这里插入图片描述
django中定义对于某个文章应用的数据库中使用到记录修改次数的这个字段

如models.py中的配置

from django.db import models
from django.utils import timezone
from django.contrib.postgres.fields import ArrayFieldclass Article(models.Model):# Titlestitle_cn = models.CharField(max_length=255, verbose_name='中文标题')title_en = models.CharField(max_length=255, blank=True, null=True, verbose_name='英文标题')# Summariessummary_cn = models.TextField(verbose_name='文章概括中文')summary_en = models.TextField(blank=True, null=True, verbose_name='文章概括英文')# Contentcontent_cn = models.TextField(verbose_name='文章富文本--中文')content_en = models.TextField(blank=True, null=True, verbose_name='文章富文本--英文')# Recommended Products (Repeat 5 times)for i in range(1, 6):locals()[f'product_{i}'] = models.BooleanField(default=False, verbose_name=f'推荐商品{i}【有或无】')locals()[f'product_{i}_title_cn'] = models.CharField(max_length=255, blank=True, null=True, verbose_name=f'推荐商品{i}标题--中文')locals()[f'product_{i}_title_en'] = models.CharField(max_length=255, blank=True, null=True, verbose_name=f'推荐商品{i}标题--英文')locals()[f'product_{i}_summary_cn'] = models.TextField(blank=True, null=True, verbose_name=f'推荐商品{i}商品大致概括--中文')locals()[f'product_{i}_summary_en'] = models.TextField(blank=True, null=True, verbose_name=f'推荐商品{i}商品大致概括--英文')locals()[f'product_{i}_link_cn'] = models.URLField(blank=True, null=True, verbose_name=f'推荐商品{i}的链接--中文')locals()[f'product_{i}_link_en'] = models.URLField(blank=True, null=True, verbose_name=f'推荐商品{i}的链接--英文')# Timestampscreated_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')updated_at = models.DateTimeField(auto_now=True, verbose_name='最后修改时间')change_count = models.PositiveIntegerField(default=0, verbose_name='更改次数')# Modification Timesmodification_times = ArrayField(models.DateTimeField(), blank=True, default=list, verbose_name='修改时间')class Meta:verbose_name = '文章'verbose_name_plural = '文章'def __str__(self):return self.title_cndef save(self, *args, **kwargs):if self.pk:self.change_count += 1self.modification_times.append(timezone.now())super().save(*args, **kwargs)

这里面的

modification_times = ArrayField(models.DateTimeField(), blank=True, default=list, verbose_name='修改时间')

Django 的 ArrayField 是为 PostgreSQL 构建的。

SQLite 没有 ArrayField 这个字段类型。

当我还是在测试时,我希望使用SQLite数据库。

要在 SQLite 中存储修改时间列表,一种不同的方法。

我们可以使用文本字段将修改时间存储为序列化的 JSON 列表。

修改时间(存储为 JSON):

models.py模型中的配置

from django.db import models
from django.utils import timezone
import jsonclass Article(models.Model):# Titlestitle_cn = models.CharField(max_length=255, verbose_name='中文标题')title_en = models.CharField(max_length=255, blank=True, null=True, verbose_name='英文标题')# Summariessummary_cn = models.TextField(verbose_name='文章概括中文')summary_en = models.TextField(blank=True, null=True, verbose_name='文章概括英文')# Contentcontent_cn = models.TextField(verbose_name='文章富文本--中文')content_en = models.TextField(blank=True, null=True, verbose_name='文章富文本--英文')# Recommended Products (Repeat 5 times)for i in range(1, 6):locals()[f'product_{i}'] = models.BooleanField(default=False, verbose_name=f'推荐商品{i}【有或无】')locals()[f'product_{i}_title_cn'] = models.CharField(max_length=255, blank=True, null=True, verbose_name=f'推荐商品{i}标题--中文')locals()[f'product_{i}_title_en'] = models.CharField(max_length=255, blank=True, null=True, verbose_name=f'推荐商品{i}标题--英文')locals()[f'product_{i}_summary_cn'] = models.TextField(blank=True, null=True, verbose_name=f'推荐商品{i}商品大致概括--中文')locals()[f'product_{i}_summary_en'] = models.TextField(blank=True, null=True, verbose_name=f'推荐商品{i}商品大致概括--英文')locals()[f'product_{i}_link_cn'] = models.URLField(blank=True, null=True, verbose_name=f'推荐商品{i}的链接--中文')locals()[f'product_{i}_link_en'] = models.URLField(blank=True, null=True, verbose_name=f'推荐商品{i}的链接--英文')# Timestampscreated_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')updated_at = models.DateTimeField(auto_now=True, verbose_name='最后修改时间')change_count = models.PositiveIntegerField(default=0, verbose_name='更改次数')# Modification Times (stored as a JSON list)modification_times = models.TextField(default='[]', verbose_name='修改时间')class Meta:verbose_name = '文章'verbose_name_plural = '文章'def __str__(self):return self.title_cndef save(self, *args, **kwargs):if self.pk:self.change_count += 1mod_times = json.loads(self.modification_times)mod_times.append(timezone.now().isoformat())self.modification_times = json.dumps(mod_times)super().save(*args, **kwargs)def get_modification_times(self):return json.loads(self.modification_times)

注解:

    # Modification Times (stored as a JSON list)modification_times = models.TextField(default='[]', verbose_name='修改时间')def get_modification_times(self):return json.loads(self.modification_times)

modification_times:是 TextField类型,用于将修改时间存储为序列化的 JSON 列表。

get_modification_times:用于将 JSON 列表解析回 Python 列表的帮助程序方法。
通过附加序列化为 JSON 字符串的当前时间来更新 modification_times 字段。

模型的admin.py

# from django.contrib import admin# Register your models here.
from django.contrib import admin
from .models import Articleclass ArticleAdmin(admin.ModelAdmin):list_display = ('title_cn', 'title_en', 'summary_cn', 'summary_en', 'has_recommended_products', 'created_at', 'updated_at', 'change_count')search_fields = ('title_cn', 'title_en')# Define fieldsets to organize form layoutfieldsets = (('标题', {'fields': (('title_cn', 'title_en'),)}),('概括', {'fields': (('summary_cn', 'summary_en'),)}),('内容', {'fields': (('content_cn', 'content_en'),)}),('推荐商品1', {'fields': ('product_1', 'product_1_title_cn', 'product_1_title_en', 'product_1_summary_cn', 'product_1_summary_en', 'product_1_link_cn', 'product_1_link_en')}),('推荐商品2', {'fields': ('product_2', 'product_2_title_cn', 'product_2_title_en', 'product_2_summary_cn', 'product_2_summary_en', 'product_2_link_cn', 'product_2_link_en')}),('推荐商品3', {'fields': ('product_3', 'product_3_title_cn', 'product_3_title_en', 'product_3_summary_cn', 'product_3_summary_en', 'product_3_link_cn', 'product_3_link_en')}),('推荐商品4', {'fields': ('product_4', 'product_4_title_cn', 'product_4_title_en', 'product_4_summary_cn', 'product_4_summary_en', 'product_4_link_cn', 'product_4_link_en')}),('推荐商品5', {'fields': ('product_5', 'product_5_title_cn', 'product_5_title_en', 'product_5_summary_cn', 'product_5_summary_en', 'product_5_link_cn', 'product_5_link_en')}),('时间信息', {'fields': ('created_at', 'updated_at', 'change_count', 'modification_times')}),)readonly_fields = ('created_at', 'updated_at', 'change_count', 'modification_times')def has_recommended_products(self, obj):return any([getattr(obj, f'product_{i}') for i in range(1, 6)])has_recommended_products.boolean = Truehas_recommended_products.short_description = '有推荐商品'# Register the Article model with the ArticleAdmin configuration
admin.site.register(Article, ArticleAdmin)
http://www.hkea.cn/news/783726/

相关文章:

  • 江西网站做的好的企业文化百度指数在哪里看
  • 山东电商网站建设seo网站排名优化公司
  • 赤峰市做网站公司今日的最新消息
  • 上海最大的贸易公司seo网络推广机构
  • jsp 网站开发广告发布平台
  • b2c网站综合对比评价站长统计幸福宝
  • 网站建设意见做推广app赚钱的项目
  • 哈尔滨营销网站制作做外贸推广
  • 深圳网站建设外贸公司排名搜索热词排名
  • 网络科技公司招聘可靠吗seo多久可以学会
  • 企业网站建设的方案ppt网络营销的特点主要包括什么
  • 如何自行建设网站推广关键词优化
  • 建设学院网站百度收录关键词查询
  • 有关外贸的网站有哪些内容武汉抖音seo搜索
  • 娄底网站建设的话术深圳网站关键词排名优化
  • 福田大型商城网站建设seo营销方法
  • 网站开发专业就业指导企业网站设计与实现论文
  • 网络营销方式的思维导图seo关键词优化系统
  • wordpress访客ip记录福清市百度seo
  • 网站下载速度慢互联网广告推广公司
  • 电影网站空间配置网络营销的工具和方法有哪些
  • 包装设计网站免费百度seo搜索引擎优化厂家
  • 免费做公司网站sem对seo的影响有哪些
  • 网站空间购买费用关键词优化计划
  • 网站制作可以卖多少钱陕西网站建设制作
  • 深圳中小企业网站制作谷歌海外广告投放
  • 做游戏网站的需求分析创建app平台
  • 青岛胶南做网站的有多少seo商学院
  • 二月网站建设南宁百度个人中心登录
  • 如何在相关网站免费做宣传广告免费建立个人网站官网