Загрузите значения из Models.py в Views.py

Я пытаюсь создать страницу, которая позволяет пользователю изменять определенные переменные CSS на странице администратора Django, и у меня возникли некоторые проблемы с извлечением одного значения из models.py и присвоением его переменной в views.py. Назначение цветов внутри страницы администратора Django работает, но я не знаю, как мне установить переменную linkcolor в views.py на переменную link_color в models.py.

views.py

from django.shortcuts import render
from django.http import HttpResponse
from .models import cssEditor

# Create your views here.

def index(request):
    linkcolor = "#000" # Grab link_color from models.py here
    linkfont = "Brush Script MT" # Grab link_font from models.py here
    linkbc = "whitesmoke" # Grab link_bc from models.py here
    return render(request, "SocialLinks/index.html", {"linkcolor":linkcolor, "linkfont":linkfont, "linkbc":linkbc})
models.py

from django.db import models

# Create your models here.

class cssEditor(models.Model):
    link_color = models.CharField(max_length=7, default="000000")
    link_font = models.CharField(max_length=15, default="Brush Script MT")
    link_bc = models.CharField(max_length=7, default="#F5F5F5")
admin.py

from django.contrib import admin
from SocialLinks.forms import *

# Register your models here.

@admin.register(cssEditor)
class cssEditor(admin.ModelAdmin):
    form = cssForm
forms.py

from django.forms import ModelForm
from django.forms.widgets import TextInput
from SocialLinks.models import *

class cssForm(ModelForm):
    class Meta:
        model = cssEditor
        fields = "__all__"
        widgets = {
            "link_color": TextInput(attrs={"type": "color"}),
            "link_bc": TextInput(attrs={"type": "color"}),
        }

Вам просто нужно запросить модель в представлении и получить значения.

from django.shortcuts import render
from django.http import HttpResponse
from .models import cssEditor

# Create your views here.

def index(request):
    editor = cssEditor.objects.get(X) # <- X is the instance pk
    return render(
        request,
        "SocialLinks/index.html",
        {
            "linkcolor":editor.linkcolor,
            "linkfont":editor.linkfont,
            "linkbc":editor.linkbc
         }
    )

Теперь, вы не упоминаете, как вы привязываете экземпляры к чему-то, например, к пользователю, или если это один экземпляр. У вас есть несколько способов запросить модель. В примере я использую пк, который я получаю волшебным образом ;) . Это то, что вам нужно выяснить

Вернуться на верх