AttributeError: 'WSGIRequest' object has no attribute 'get' I got this error earlier and I didn't find my answer here
Я прохожу курс django и у меня появилась эта ошибка раньше, а у преподавателя нет!!! что мне делать ??? вот мой код ниже
views.py
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
from .models import Project
from .forms import ProjectForm
def projects(request):
objs = Project.objects.all()
context = {"projects": objs}
return render(request, 'projects/project.html', context)
def dynamic(request, text):
obj = Project.objects.get(id=text)
return render(request, 'projects/single-project.html', {'obj': obj})
def createproject(request):
form = ProjectForm()
context = {'form': form}
return render(request, 'projectform.html', context)
models.py
from django.db import models
import uuid
class Project(models.Model):
title = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True)
demo_link = models.CharField(null=True, blank=True, max_length=2000)
source_link = models.CharField(null=True, blank=True, max_length=2000)
created = models.DateTimeField(auto_now_add=True)
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
tag = models.ManyToManyField('Tag', blank=True)
total_vote = models.IntegerField(default=0, null=True, blank=True)
vote_ratio = models.IntegerField(default=0, null=True, blank=True)
def __str__(self):
return self.title
class Review(models.Model):
VOTE = (
('up', 'Up Vote'),
('down', 'Down Vote'),
)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
body = models.TextField(null=True, blank=True)
value = models.CharField(max_length=200, choices=VOTE)
created = models.DateTimeField(auto_now_add=True)
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
def __str__(self):
return self.value
class Tag(models.Model):
name = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
def __str__(self):
return self.name
forms.py
from django.forms import ModelForm
from .models import Project
class ProjectForm(ModelForm):
class Meta:
model = Project
fields = '__all__'
urls.py (в папке проекта я создал еще один файл urls python, чтобы облегчить кодирование, и это тот файл, который я сделал)
from django.urls import path
from . import views
urlpatterns = [
path('', views.projects),
path('projects/<str:text>', views.dynamic, name='project'),
path('create-project/', views.ProjectForm, name='create-project')
]
projectform.html
{% block content %}
<h2>Project Form</h2>
<form method="POST">
{% csrf_token %}
{{form}}
<input type="submit">
</form>
{% endblock %}
Traceback
Я думаю, что проблема может быть в вашем urls.py
у вас есть path('create-project/', views.ProjectForm, name='create-project')
, но я думаю, что вам нужно path('create-project/', views.createproject, name='create-project')
.