Загрузите значения из 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
}
)
Теперь, вы не упоминаете, как вы привязываете экземпляры к чему-то, например, к пользователю, или если это один экземпляр. У вас есть несколько способов запросить модель. В примере я использую пк, который я получаю волшебным образом ;) . Это то, что вам нужно выяснить