You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django开发如何从models.py读取字段值赋值到views.py变量

解决方案

你需要从cssEditor模型中读取配置记录后赋值给视图变量,全局样式配置通常只有1条记录,我们可以用get_or_create方法避免空数据报错,修改后的views.py代码如下:

from django.shortcuts import render
from .models import cssEditor

def index(request):
    # 读取主键为1的配置记录,不存在则自动创建默认记录
    css_config, _ = cssEditor.objects.get_or_create(pk=1)
    linkcolor = css_config.link_color
    linkfont = css_config.link_font
    linkbc = css_config.link_bc
    return render(request, "SocialLinks/index.html", {
        "linkcolor": linkcolor,
        "linkfont": linkfont,
        "linkbc": linkbc
    })

额外优化建议

  1. 修正模型字段默认值格式
    你当前models.py中link_color字段的默认值没有带#,会导致前端无法正常识别颜色,建议修改:
# 修改前
link_color = models.CharField(max_length=7, default="000000")
# 修改后
link_color = models.CharField(max_length=7, default="#000000")
  1. 限制后台仅保留1条配置
    避免后台新增多条冗余配置,修改admin.py代码,限制新增权限,同时修正类名重复问题(原admin类名和模型名重名会导致命名冲突):
from django.contrib import admin
from SocialLinks.forms import cssForm
from SocialLinks.models import cssEditor

@admin.register(cssEditor)
class cssEditorAdmin(admin.ModelAdmin):
    form = cssForm
    # 已有配置记录时禁止新增
    def has_add_permission(self, request):
        return not cssEditor.objects.exists()

内容的提问来源于stack exchange,提问作者cr_untilted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:54:04