Django - печать переменных в шаблонах - PullRequest
0 голосов
/ 22 апреля 2020

Я создал приложение под названием «задания», в основном я хотел бы создать новые «задания» из консоли администратора и иметь возможность публиковать его на заданиях. html страница.

Я создал модель и виды, но я думаю, что с представлениями что-то не так, что не позволяет мне печатать «задания» в шаблоне html.

Подскажите, пожалуйста, есть ли ошибка в представлениях .py?

jobs / models.py

from django.db import models

# Create your models here.
class post_job(models.Model):
    posizione= models.TextField(max_length=20)
    descrizione= models.TextField(max_length=20)
    requisiti= models.TextField(max_length=20)

    def __str__(self):
        """String for representing the MyModelName object (in Admin site etc.)."""
        return self.posizione

jobs / admin.py

from django.contrib import admin
from .models import post_job
# Register your models here.

admin.site.register(post_job)

jobs / views.py

from django.shortcuts import render
from .models import post_job
# Create your views here.

def viz_job(request):
    posizione = post_job.posizione
    print(posizione)
    return render(request,'jobs/jobs.html',{'posizione':posizione})

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Правильный ответ:

По вашему мнению:

from django.shortcuts import render
from .models import PostJob # proper naming

def viz_job(request):
    jobs = PostJob.objects.all()

    return render(request,'jobs/jobs.html',{'jobs': jobs})

в вашем шаблоне:

<ul>
{% for job in jobs %}
   <li>
      <h3>{{ job.posizione }}</h3>
      <div>
          {{ job.descrizione }}
     </div>
   </li>
{% endfor %}
</ul>

Обратите внимание, что все это задокументировано.

Примечание: если вас интересуют только эти два поля и вам не нужны какие-либо методы модели, связанные объекты или что-то еще, вы можете немного оптимизировать запрос, используя values набор запросов, который будет выдавать диктанты с выбранным поля вместо полных экземпляров модели:

    jobs = PostJob.objects.values("posizione", "descrizione")

Все остальное остается прежним.

0 голосов
/ 22 апреля 2020

Вы должны знать, что вы хотите вернуть для шаблона, например, в views.py:

from django.shortcuts import render
from .models import post_job
# Create your views here.

def viz_job(request):
    jobs = []
    descriziones = []
    posizione = Job.objects.all()
    for pos in posizione:
        jobs.append(pos.posizione)
        descriziones.append(pos.descrizione)
    context = {
        'posizione': jobs,
        'descrizione': descriziones
    }
    return render(request, 'jobs/jobs.html',
                  context=context)  # this will return context dictonary to the template

Вы можете фильтровать и получать определенные данные c из вашей базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...