Хорошо, поэтому я только что провел довольно обширное онлайн-урок по Django и хотел погрузиться в свой первый проект, чтобы посмотреть, как я буду двигаться.
Я начал хорошо, а затем натолкнулся на довольно большой блокпост, которыйЯ пытаюсь победить без удачи, так что если вы, ребята, могли бы помочь, я навсегда останусь в вашем долгу!
Так что сам проект просто создает сайт для нескольких моих товарищей, где мы можем войти и посмотретьнекоторые статистические данные о ставках, которые мы имеем друг с другом.
Что я сделал до сих пор:
Я создал две модели в models.py со следующим кодом:
from django.db import models
# Create your models here.
class Team(models.Model):
team_name = models.CharField(max_length=500, unique=True)
wins = models.PositiveIntegerField()
losses = models.PositiveIntegerField()
class Predictions(models.Model):
combined_teams = models.CharField(max_length=800)
player_name = models.CharField(max_length=200, primary_key=True)
predicted_wins = models.PositiveIntegerField()
def __str__ (self):
return self.player_name
Я создал экран входа в систему, это первый экран, к которому придет пользователь (не имеет отношения к вопросу)
Я создал статическую папку с некоторыми стилями CSS для нескольких страниц и внес некоторые незначительные измененияк файлам настроек.
Затем я настроил свой файл views.py и несколько файлов urls.py следующим образом:
###VIEWS.PY####
from django.shortcuts import render
from django.views.generic import TemplateView, ListView
from django.contrib.auth.mixins import LoginRequiredMixin
from .models import Predictions, Team
class WelcomeView(LoginRequiredMixin,TemplateView):
template_name = 'merchbet/welcome.html'
class HomeView(LoginRequiredMixin, TemplateView):
template_name = 'merchbet/home.html'
class PredictionListView(LoginRequiredMixin, ListView):
model = Predictions
def get_queryset(self):
return Predictions.objects.order_by('-player_name')
class GalleryView(LoginRequiredMixin,TemplateView):
template_name = 'merchbet/gallery.html'
URLS.PY
from django.contrib import admin
from django.urls import path,include
from django.contrib.auth.urls import views
urlpatterns = [
path('', views.LoginView.as_view(), name='login'),
path('account/profile/', include('merchbet.urls')),
path('admin/', admin.site.urls),
]
URLS.PY ### В МОЕМ ПРИЛОЖЕНИИ FOLDER
from django.urls import path
from . import views
app_name = 'merchbet'
urlpatterns = [
path('', views.WelcomeView.as_view(), name='welcome'),
path('home/', views.HomeView.as_view(), name='home'),
path('predictions/', views.PredictionListView.as_view(), name='prediction_list'),
path('gallery/', views.GalleryView.as_view(), name='gallery')
Затем я выполнил следующий сценарий, чтобы в этом сезоне я мог загрузить «прогнозы» своих друзей на наши ставки в НБА с помощью следующей программы:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE','mysite.settings')
import django
django.setup()
from merchbet.models import Predictions, Team
predictions = ['Burger', 'Houston Rockets and Oklahoma City Thunder', 101,
'Buzz','Houston Rockets and Boston Celtics', 115, 'Kimon', 'Sacramento Kings and Atlanta Hawks', 44,
'Muller','Utah Jazz and Boston Celtics', 118, 'Barlow', 'Los Angeles Lakers and Milwaukee Bucks', 102,
'Larter','Golden State Warriors and Atlanta Hawks', 83, 'Hume', 'Los Andeles Lakers and Philadelphia 76ers',
104]
def add_predictions():
for index, entry in enumerate(predictions):
if index < len(predictions)-2:
if (type(predictions[index+2]) == type(1)):
player_name = predictions[index]
combined_teams = predictions[index+1]
predicted_wins = predictions[index+2]
preds = Predictions.objects.get_or_create(player_name=player_name,combined_teams=combined_teams,predicted_wins=predicted_wins)[0]
if __name__ == '__main__':
print("Populating the databases...Please Wait")
add_predictions()
print('Populating Complete')
Вышеработал нормально, и я могу видеть в моем представлении Django Admin сайта, что есть 7 объектов класса Predictions, все названные в честь переменной «player_name», поскольку это первичный ключ:
Так что после всего этого яя пытаюсь просто использовать цикл for в html-документе, который поможет распечатать «player_name», а затем я могу показать «mixed_teams» и «realted_wins », но я просто не могу заставить его работать.
{% for prediction in prediction_list %}
<h1>{{ prediction.player_name }}</h1>
{% endfor %}
Я приложил кучу усилий к этому сообщению, поэтому я надеюсь, что какой-нибудь гений сможет протянуть руку!
edit: я знаю, что цвет текста белый, это противчерный фон, так что это не проблема: -)
Спасибо!