Django model nesnelerini getirme

#1

Merhabalar;

models.py :

class menemen(models.Model):
    soganmiktar = models.CharField()
    domatmiktar = models.CharField()

Bu modelden yeni nesneler oluşturduktan sonra template üzerinde göstermek üzere o nesneleri nasıl getirebilirim?

0 Likes

#2
django/
    /proje//
         //urls.py
    /uygulama//
         //views py
         //templates///
             ///model.html
    /manage.py

urls.py

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
import uygulama.views as uygulama

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', uygulama.model_goster),
] + staticfiles_urlpatterns()

views.py

from .models import model

def model_goster(request):
    tum_modeller = model.objects.all()
    return render(request, 'model.html' , 'tum_modleler': tum_modeller)

model.html

<h1> {{ tum_modeller }} </h1>
1 Like

#3

Bu ne işe yarıyor? .

0 Likes

#4

Şimdi sen urls.py içindeki urlpatterns içinde sitenin url adreslerini yazıyorsun örneğin admin panelinin sayfa adresi veya ana sayfanın adresi gibi bunlara ek olarak sonuna staticfiles_urlpatterns() yazarak static klasöründeki dosyaların yollarınıda ekliyorsun.
Static klasörünü django uygulamanın ve projenin olduğu klasörde sen oluşturuyorsun ve içinede css, js, resim/video dosyalarını bırakıyorsun yani örnek olarak templates klasörünün içindeki html dosyalarını güzelleştirmek için ihtiyaç duyduğun css dosyalarını static klasörünün içinde oluşturuyorsun. Bu css dosyasının html içinde yolunu

ornek.html

{% load static %}
<link rel="stylesheet" type="text/css" href="{% static "css/ornek.css" %}">

bunları yazarak belirtiyorsun.

Burada ornek.html 'ın css dosyasının yolunu belirtiyorsun.

django/
    /proje
    /uygulama//
          //views.py
          //templates///
                ///ornek.html
    /static//
         //ornek.css
    /manage.py
0 Likes

#5

Hata aldım?:

views.py

from django.shortcuts import render
from .models import Yazi

def index(req):
   modeller = Yazi.objects.all()
   print(modeller)
   return render(req, "blog/index.html", {"model": modeller})

def ilk(req):
    return render(req, "blog/ilk.html")

Hata:

Traceback (most recent call last):
  File "/usr/lib/python3.6/wsgiref/handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)
  File "/home/erdem/.local/lib/python3.6/site-packages/django/contrib/staticfiles/handlers.py", line 65, in __call__
    return self.application(environ, start_response)
  File "/home/erdem/.local/lib/python3.6/site-packages/django/core/handlers/wsgi.py", line 141, in __call__
    response = self.get_response(request)
  File "/home/erdem/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 75, in get_response
    response = self._middleware_chain(request)
  File "/home/erdem/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner
    response = response_for_exception(request, exc)
  File "/home/erdem/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
  File "/home/erdem/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 125, in handle_uncaught_exception
    return debug.technical_500_response(request, *exc_info)
  File "/home/erdem/.local/lib/python3.6/site-packages/django/views/debug.py", line 94, in technical_500_response
    html = reporter.get_traceback_html()
  File "/home/erdem/.local/lib/python3.6/site-packages/django/views/debug.py", line 332, in get_traceback_html
    t = DEBUG_ENGINE.from_string(fh.read())
  File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 9735: ordinal not in range(128)

index.html

<!DOCTYPE html>
<title> Blog | Ramazan Osmanoğlu </title> 
<div align="center">
 <h1> Blog Sayfası </h1>
 {% for a in model %}
 {{a}}
 {% endfor %}
</div>

models.py

from django.db import models

class Yazi(models.Model):
    baslik = models.CharField(max_length=200)
    yazilar = models.TextField()

    def __str__(self):
        return self.baslik

Site resmi:

Admin sayfasında Yazi modeline bakmaya çalışınca:

0 Likes

#6

Bu hata tamamen Django ile alakali. Ben super kullanici olusturmaya calisinca da ayni hatayi almistim. Sebebi ise, olustururken "Kullanıcı adı: " seklinde soruyor ve bu da sorun cikariyor. Sistem dilini ingilizce yapip sorunu cozdum.

0 Likes