【问题标题】:Django I can't pull data from database. DoesNotExist error in webDjango 我无法从数据库中提取数据。网络中的 DoesNotExist 错误
【发布时间】:2022-12-19 14:08:49
【问题描述】:

管理员可以更改网页标题、关键字或描述。但它不起作用 rn。当我进入网站时出现错误:不存在于/ 设置匹配查询不存在。

这是我的家/models.py

from django.db import models
class Setting(models.Model):
    title = models.CharField(max_length=150)
    keywords = models.CharField(max_length=255)
    description = models.CharField(max_length=255)
    company = models.CharField(max_length=50)
    address = models.CharField(blank=True, max_length=150)
    phone = models.CharField(blank=True, max_length=15)
    fax = models.CharField(blank=True, max_length=15)
    email = models.CharField(blank=True, max_length=50)
    smptpserver = models.CharField(blank=True, max_length=30)
    smptemail = models.CharField(blank=True, max_length=30)
    smptpassword = models.CharField(blank=True, max_length=150)
    smptport = models.CharField(blank=True, max_length=15)
    icon = models.ImageField(blank=True, upload_to='images/')
    facebook = models.CharField(blank=True, max_length=50)
    instagram = models.CharField(blank=True, max_length=50)
    twitter = models.CharField(blank=True, max_length=50)
    aboutus = models.CharField(max_length=50)
    contact = models.CharField(max_length=50)
    contact_map = models.CharField(max_length=50)
    references = models.CharField(max_length=50)
    status = models.CharField(max_length=10, choices=STATUS)
    create_at = models.DateTimeField(auto_now_add=True)
    uptade_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title 

这是我的家/views.py

from django.http import HttpResponse
from django.shortcuts import render
from home.models import Setting
def index(request):
    setting=Setting.objects.get(pk=1)
    context={'setting':setting}
    return render(request,'index.html',context)

这是我的家/temp/index.html

{% block title %} {{ setting.title }} {% endblock %}
{% block keywords %} {{ setting.keywords }} {% endblock %}
{% block description %} {{ setting.description }} {% endblock %}

【问题讨论】:

    标签: python django django-views


    【解决方案1】:

    因为如果该行不存在,get() 函数将引发异常。 (official explanation)

    1. 选项;
    您可以通过这种方式使用 get_or_404 ;

    from django.shortcuts import get_object_or_404
    
    Setting.objects.get_object_or_404(pk=1)
    

    2.选项;
    您可以通过这种方式使用 get_or_create ;

    Setting.objects.get_or_create(pk=1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-18
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 2020-02-08
      • 2021-02-27
      相关资源
      最近更新 更多