Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
By Post request received data is None. Why it's possible
I have django app in it's views.py created for accepting, and saving objects from received data into database. from .models import Hook def hooktrack(request): source=requests.POST.get("source") b=Hook(dsourse=source).save() Than I link this view to .urls.py urlpatterns = [ path("hooktrack/",hooktrack), ] My full url use http protockol not https maybe it involved in my problem I several times tested hooktrack view and it was accept and save received data. curl -d "source=google" -X POST http://example.net/hooktrack/ After curling sent source=value accessible to query from dB. from my.models import Hook a=Hook.objects.all() for item in a: print(item.dsource) ...google Than I linked my hooktrack view to production for accepting hooks from our business partner. After receiving them all of them saved to database but has None value -
Operational error while adding values in a text field in django
I get this error when I add a something to the text field.I'm trying to create a project where someone can enter random messages. OperationalError at /admin/submit/submit/add/ no such table: main.auth_user__old Request Method: POST Request URL: http://127.0.0.1:8000/admin/submit/submit/add/ Django Version: 2.1 Exception Type: OperationalError Exception Value: no such table: main.auth_user__old Exception Location: D:\Anaconda1\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 296 Python Executable: D:\Anaconda1\python.exe Python Version: 3.8.3 Python Path: ['D:\\PyProjects\\Website', 'D:\\Anaconda1\\python38.zip', 'D:\\Anaconda1\\DLLs', 'D:\\Anaconda1\\lib', 'D:\\Anaconda1', 'C:\\Users\\heman\\AppData\\Roaming\\Python\\Python38\\site-packages', 'D:\\Anaconda1\\lib\\site-packages', 'D:\\Anaconda1\\lib\\site-packages\\win32', 'D:\\Anaconda1\\lib\\site-packages\\win32\\lib', 'D:\\Anaconda1\\lib\\site-packages\\Pythonwin'] Server time: Mon, 5 Oct 2020 17:19:26 +000 This is my models.py from django.db import models # Create your models here. class Submit(models.Model): title = models.TextField(max_length=140, default='SOME STRING') status = models.TextField(max_length=140, default='SOME STRING') description = models.TextField(max_length=140, default='SOME STRING') Here is my setting.py installed apps INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'submit.apps.SubmitConfig', ] Here is my apps.py from django.apps import AppConfig class SubmitConfig(AppConfig): name = 'submit' Here is my admin.py from django.contrib import admin from .models import Submit # Register your models here. admin.site.register(Submit) I also ran python manage.py makemigrations and python manage.py migrate Please help me...Thanks in advance -
Not Found: Requested url was not found on this server. AWS django elastic beanstalk
Hello let me apologize in advance since I am a beginner and this may be a very simply fix but I just launched my first elastic beanstalk server trying to host my portfolio. I followed the tutorial laid out by amazon at https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html but something must've gone wrong. I'll include a picture of my hierarchy, my applications.py and my urls.py if you need anything else don't hesitate to ask any help is very appreciated thanks! """ WSGI config for Portfolio project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/ """ import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Portfolio.settings') application = get_wsgi_application() There is my application.py and now my urls.py from django.contrib import admin from django.urls import path, include from . import views urlpatterns = [ path('', views.index, name='index'), path('admin/', admin.site.urls), path('sudoku/', views.sudoku, name='sudoku'), ] and finally my hierarchy enter image description here -
How to mock info.context in Django / Graphene tests
Problem I'm trying to test a graphql query. The query requires that the user associated with the request (info.context.user) is a super user (.is_superuser). Otherwise it throws an exception. I'm trying to test that the query works properly but am unsure how to ensure that info.context.user.is_superuser resolves to true in the test. Please help! schema.py class Query(graphene.ObjectType): gardens = graphene.List(GardenType) def resolve_gardens(self, info): user = info.context.user if not (user.is_superuser or user.is_staff): raise Exception("You must be staff or a superuser to view all gardens") return Garden.objects.all() tests.py from graphene_django.utils.testing import GraphQLTestCase, graphql_query from users.models import CustomUser class TestGraphQLQueries(GraphQLTestCase): """ Test that GraphQL queries related to gardens work and throw errors appropriately """ def test_gardens_query(self): response = self.query( """ query { gardens { id name owner { id email } } } """ ) self.assertResponseNoErrors(response) Error Thrown gardens/tests.py:93: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../env/lib/python3.6/site-packages/graphene_django/utils/testing.py:114: in assertResponseNoErrors self.assertNotIn("errors", list(content.keys())) E AssertionError: 'errors' unexpectedly found in ['errors', 'data'] -------------------------- Captured log call --------------------------- ERROR graphql.execution.utils:utils.py:155 Traceback (most recent call last): File "/home/dthompson/Code/personal/gardenbuilder-backend/env/lib/python3.6/site-packages/promise/promise.py", line … -
Implementar botão com evento onchange [closed]
Coloquei um techo do codigo HTML de um projeto Django que peguei nesses dias, na aplicação na pagina web tem essa opção de SERVIÇO para o usuario escolher o tipo de serviço que ele quer em um dropdown, mas quando o usuario escoher 1 serviço a tela recarrega e o serviço fica no dropdown e segue para o outro dropdown que é o de veiculos que corresponde ao serviço que foi escolhido, estou tentando implementar uma opção para o usuario poder escolher mais de um serviço e clicar com botão quando ele terminar, (ainda não criei o botão), mas estou com problemas pq nesse codigo tem o evento ONCHANGE e quando seleciono o serviço so fica 1 apenas, usei o SELECT2 mas sem sucesso, o evento ONCHANGE que pode esta causando isso, por causa disso não estou conseguindo, alguem pode me ajudar nesse codigo? Como fazer essa implementação de poder selecionar varios serviços e finalizar com o batão e depois recarregar a pagina com os serviços escolhidos? <h3><strong>Serviço</strong></h3> <select id="servico_cad" name="servico_cad" onchange="saveValue(this);this.form.submit();"> {% for i in cad_servico %} <option value='{{i}}'>{{i}}</option> {% endfor %} <option value='Todos'>Todos</option> </select> -
Django REST difference in views and viewsets
I have a fairly simple REST api, but I still dont understand the difference between the type of views. Anything related to a model, I do through ModelViewSets and ModelSerializers. You can use the router, you have parameters in swagger docs, all good! BUT, if I dont have a model (for example I have a function that accepts 2 parameters (var1 and var2) and the POST requests multiplies them, what is my best option? I prefer an option which involves a serializer as I am hoping to get parameters showing in the Swagger Documentation. I know I have the ViewSet option but that doesnt give me parameters in swagger. Is there any option that does give me those options? -
Adding Days of the Week as choices (datetime object) in a model field
I have a field in my models where I want it to be a datetime field and it would just hold the days of the week as choices. Is this possible i.e. the choices are datetime objects with the days of the week as the value. I assume that by doing this, I'll be able to sort the objects in chronological order. So if object1 has tuesday and object2 has monday and object3 is friday -- it can be sorted as object2, object1, object3 -
Serializer removing data in Django 3.1
I'm trying to validate data in order to store it. But the serializer is removing valid fields. Here my code: models.py class MyModel(models.Model): user_id = models.UUIDField('action uid',default=uuid.uuid4,null=False,primary_key=True,blank=False,editable=False, unique=True) city = models.CharField('City', max_length=50, null=True, blank=True, editable=False) latitude = models.CharField('Latitude', max_length=50, null=True, blank=True, editable=False) longitude = models.CharField('Longitude', max_length=50, null=True, blank=True, editable=False) datetime = models.DateTimeField('datatime', null=False, blank=False, editable=False) serializer.py class MyModelSerializer(serializers.ModelSerializer): class Meta: model = MyModel fields = '__all__' view.py def save_my_data(self, request): user_info ={ "user_id": data['user_uid'], "city": data['user_city'], "latitude": "17.6801", "longitude": "83.2016", "datetime": timezone.now() } serializer = serializers.MyModelSerializer(data=user_info) print( serializer.data ) # returns void Any thoughts about this? thanks in advance. -
Comments under Post
I created model Post and Comment, now I want to display comments from Post but I have a problem. In tutorial there is a line of code in html {% for comment in post.comments.all %} but isn't working in my app. If I set {% for comment in comments %} it works but displays all comments from models (I want only comments from the post). How to fix that? Below I pasted my code. models.py from django.db import models class Post(models.Model): title = models.CharField(max_length=64, blank=False, null=False) short_text = models.TextField(blank=False, null=False) text = models.TextField(blank=False, null=False) image = models.TextField(blank=False, null=False) date = models.DateTimeField(auto_now_add=True, blank=True) views = models.IntegerField(default=0) class Comment(models.Model): post = models.ForeignKey('main.Post', on_delete=models.CASCADE) author = models.CharField(max_length=200) text = models.TextField() created_date = models.DateTimeField(auto_now_add=True, blank=True) approved_comment = models.BooleanField(default=False) def approve(self): self.approved_comment = True self.save() def __str__(self): return self.text views.py from django.shortcuts import get_object_or_404, render, redirect from .models import Post, Comment def index_pl(request): posts = Post.objects.all() return render(request, 'index_pl.html', {'posts': posts}) def single_article_pl(request, id): posts = get_object_or_404(Post, pk=id) posts.views = posts.views + 1 posts.save() comments = Comment.objects.all() return render(request, 'single_article_pl.html', {'posts': posts, 'comments': comments}) html {% for comment in post.comments.all %} <div class="comment"> <div class="date">{{ comment.created_date }}</div> <strong>{{ comment.author }}</strong> <p>{{ comment.text|linebreaks }}</p> </div> {% … -
celery beat and worker doesn't work as expected
I want to make two functions that update and show a global list named websites, and execute them by celery. To initialize websites, I made a file named config.py: # config.py # I have to declare global variables outside of the init(), # otherwise Django doesn't recognize these global variables outside of the `config.py` global websites global flag flag = True # this method should be executed just One time!!! def init(): global flag flag = False global websites websites = [] print("===========IN Config.init()==========") I made two functions to be executed, check_list() executes every 2 seconds and initializes and shows the websites content, and update_list() executes every 10 seconds and add some elements to websites. Here is my tasks.py: (I made some prints in order to make the finding bug process easy.) # tasks.py from celery import shared_task from .celeryapp import app from . import config @shared_task def check_list(): try: print("config.flag First : " + str(config.flag)) if config.flag: config.init() print("This should be seen one tiiiiiiiiiiiiiiiiiiiiime") print("config.websites check_list : ===> " + str(config.websites)) except Exception as e: print(e) @shared_task def update_list(): try: print("config.flag First : " + str(config.flag)) if config.flag: config.init() print("This should be seen one tiiiiiiiiiiiiiiiiiiiiime") urls = ['first', 'second', … -
How can i redirect to the same page when a function executed Django
I have a like function in views.py and whenever the function executes i want to return the user to the same page he/she was. what should i write in return of my function? -
ModelForm not rendering to page?
This is a strange one for me because this is not the only ModelForm I have in this project and the other one is perfectly fine. Could someone have a look and see why the 'bid_input' input field for my form is not showing up on the page? My views.py admittedly isn't quite complete and functioning the way I want it to but I was at least expecting the input box to show but only the 'Place Bid' is showing. models.py class Bid(models.Model): bidder = models.ForeignKey(User, on_delete=models.CASCADE, related_name="bidders") item = models.ManyToManyField(Listing, related_name="bid_item", default=None, blank=True) bid_input = models.DecimalField(max_digits=9, decimal_places=2, default=None) time = models.TimeField() forms.py class BiddingForm(forms.ModelForm): class Meta: model = Bid fields = ["bid_input"] widgets = { "bid_input": forms.NumberInput(attrs={'autocomplete':'off'}) } urls.py path("listing/<int:id>/bid", views.bidding, name="bidding") views.py def bidding(request, id): listing = get_object_or_404(Listing, id=id) if request.method == "POST": form = BiddingForm(request.POST or None) if form.is_valid(): newbid = form.save(commit=False) newbid.bidder = request.user newbid.item = listing newbid.time = timezone.now() bid = newbid.save() return redirect("listing", bid_id=newbid.id) else: return render(request, "auctions/listingPage.html", { "form": form}) else: form = BiddingForm() return render(request, "auctions/listingPage.html", { "form": form }) listingPage.html {% extends "auctions/layout.html" %} {% block body %} <div> <form action="{% url 'bidding' listing.id %}" method="POST" name="bid_input"> {% csrf_token %} {{ … -
Combine two querysets, common field with different values
I search in a model "ConsultantProfile", the relevance is represented by a field called "rank" in "queryset1". I Also search in related models and gather "ConsultantProfile" objects from that related models in "queryset2" and set rank manually "0.7" for them so i can union query sets. When i want to combine and merge queryset1 and queryset2, common objects have different rank values. The problem is in final "queryset" the "rank" field's value is a value of rank from first queryset and i can't choose the highest value for "rank" queryset1 = qs.filter(active=True).annotate( rank=SearchRank( vector, query, normalization=Value(2).bitor(Value(4)), ) ) ids: some "ConsultantProfile" objects ids queryset2 = ConsultantProfile.objects.filter(id__in=ids, active=True).annotate(rank=Value(5, FloatField())) queryset = queryset1 | queryset2 Failed solution I tried to solve the problem by iterate over both query sets and union manually but no thing changed! queryset = queryset1.none() for obj in queryset1: qs2_object_qs = queryset2.filter(id=obj.id) # object presents in queryset2 if qs2_object_qs.exists(): # obj from queryset1 has better rank than queryset2 obj if obj.rank >= qs2_object_qs.first().rank:k) queryset |= queryset1.filter(id=obj.id) queryset2 = queryset2.exclude(id=obj.id) else: queryset |= qs2_object_qs # object does not present in queryset2 else: queryset |= queryset1.filter(id=obj.id) for obj in queryset2: qs_object_qs = queryset.filter(id=obj.id) # object presents in queryset if qs_object_qs.exists(): … -
how to add initial value to Django IntegerField?
I want to add 20000 gift credit as a coustmer is created without using init function or calssMethod class Customer(models.Model): balance = models.PositiveIntegerField(null=True) -
JSONField doesn't allow null in Django 3.1
I'm trying to use a JSONField in Django, sometimes I need it be null so I defined it with null=True, blank=True, but when I'm validating with the Serializer I'm getting my_data: [This field can't be null]. Here is my code: models.py class MyModel(models.Model): my_data = models.JSONField('data', null=True, blank=True, editable=False) serializer.py class MyModelSerializer(serializers.ModelSerializer): my_data = serializers.JSONField() class Meta: model = MyModel fields = '__all__' view.py def save_my_data(self, request) info['my_data'] = None serializer = serializers.MyModelSerializer(data=info) # validate the data print( serializer.is_valid() ) #returns False print( serializer.errors ) #returns my_data: [This field can't be null] Any suggestions about this? Thanks in advance. -
While Uploading your Django Project to Cpanel Should we also include the Venv?
I had created a small django project. Now I need to upload it on my domain. While uploading should I include the Venv in it or not. These are the files: ``-Encrypt(folder) -.idea -fast(project) -decrypt(app) -fast -pages(app) -utils -db.sqlite3 -manage.py -venv -
How to Bulk update records in Django?
I have multiple fields in my database and I want to update all records on submit button, Please let me know how i can do it. Here is my models.py file... class Product(models.Model): name=models.CharField(default=None) type=models.CharField(default=None) father=models.CharField(default=None) model1=models.Foreignkey(Category, related_name='cat_product', on_delete=models.CASCADE) here is my views.py file... def display_data(request, id): test_display = Product.objects.all() context = { 'test_display': test_display } return render(request, 'page.html', context) here is my page.html file... <form method="POST" action={% url 'back:formupdate' %} {% csrf_token %} {% for test in test_display %} <p>{{ test.name }}</p> <p>{{ test.type }}</p> <p>{{ test.phone }}</p> <p><input type="text" name="father" value="{{test.father}}"></p> <p>{{ test.model1 }}</p> <button class='btn btn-success'>Update Record</button> {% endfor %} I want to update father record in all fields, I want to update bulk records... I want to update this record in all my database entries.... -
Python django.How to output a variable?
Js: <script> var interval function callAjax(){ $.ajax({ type: "GET", url: "../row_han_two", data: { 'id_group': $("#id_group").val(), }, cache : false, success: function(data){ rot_message = data interval = setTimeout(callAjax, 1000); } }); } callAjax() </script> views: from django.shortcuts import render from django.contrib.auth.models import User,Group from django.contrib.auth import models from create_group_handler.models import Parameters_User from django.contrib.auth.decorators import login_required from create_group_handler.models import UserProfile from django.http import HttpResponse, HttpResponseRedirect from rot.models import Rot_model from django.http import JsonResponse import time @login_required def row_han_two(request): rot_message = Rot_model.objects.filter(id_chat = request.GET['id_group']) return HttpResponse(rot_message) Please tell me how you can display the chat_message variable in html like this: {% for object in rot_message%} <div class="row"> <div class="col-xl-3 block_messeage"> <span class="span_block_messeage">{{object.name_author}} ,{{object.time_message}}</span> <br> {{object.text_message }} </div> </div> {% endfor %} Lorem, ipsum dolor sit amet, conctetur adipisicing elit. Амет, веритатис. Eveniet culpa eaque quisquam ducimus ut ratione quae ex reiciendis, rerum vel, Lorem, ipsum dolor sit amet, conctetur adipisicing elit. Амет, веритатис. Eveniet culpa eaque quisquam ducimus ut ratione quae ex reiciendis, rerum vel, Lorem, ipsum dolor sit amet, conctetur adipisicing elit. Амет, веритатис. Eveniet culpa eaque quisquam ducimus ut ratione quae ex reiciendis, rerum vel, -
Strange API response in DRF - works on server run, empties on reload
I'm trying to create a serializer and a view returning the amount of objects for two models : class Lieu(models.Model): nom = models.CharField(max_length=30, blank=False) adresse = models.CharField(max_length=200, blank=False) code = models.CharField(max_length=6, blank=False) ville = models.CharField(max_length=20, blank=False) pluscode = models.CharField(max_length=20, blank=False) class Meta: verbose_name_plural = "lieux" def __str__(self): return f'{self.nom} - {self.ville}' class Artiste(models.Model): nom = models.CharField(max_length=40, blank=False) type_artiste = models.CharField(max_length=20, blank=False) pays_origine = models.CharField(max_length=20, blank=False) ville_origine = models.CharField(max_length=20, blank=True) bio = models.TextField(blank=True) def __str__(self): return self.nom The result I expect is something like that : [ { "lieux_count": 3, "artistes_count": 2 } ] Here is the methodfield base serializer in serializers.py : from rest_framework import serializers from datamidi.models import Artiste, Lieu class AllStats(serializers.Serializer): lieux_count = serializers.SerializerMethodField('get_artistes_count') artistes_count = serializers.SerializerMethodField('get_lieux_count') class Meta: fields = ['lieux_count', 'artistes_count'] read_only_fields = [ 'lieux_count', 'artistes_count'] def get_artistes_count(self, obj): return Artiste.objects.all().count() def get_lieux_count(self, obj): return Lieu.objects.all().count() And here is the view : from itertools import chain from datamidi.models import Artiste, Lieu class AllStatsView(generics.ListCreateAPIView): aquery = Artiste.objects.all() lquery = Lieu.objects.all() queryset = chain(aquery, lquery) serializer_class = AllStats permission_classes = [IsAdminUserOrReadOnly] The result is quite strange, two problems When doing a run server, the values returned at http://127.0.0.1:8000/api/allstats/ are correct, but iterated as many times as the total … -
make django forgot password forms in the same page
django has 4 views for forgetting the password i want to use those views in one template so that the user don't have to go to a different URL to reset his password or type his email to send the link of resetting the password i think i just need 2 views which are the form views, first is "PasswordResetView" and the other is "PasswordResetConfirmView" the other two are views that renders templates telling the user that the email is sent successfully or the password has been reset , i don't need them i'll be replacing them with toasts i thought of copy pasting the source code of those views in my views.py but is there a more proper way to do that? for now this is how i'm rendring them each one in a diffrent path and template path('password_reset/', auth_views.PasswordResetView.as_view(template_name="main/password_reset.html",form_class=UserPasswordResetForm),name="reset_password"), path('password_reset_sent/', auth_views.PasswordResetDoneView.as_view(template_name="main/password_reset_sent.html"),name="password_reset_done"), path('reset_password/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name="main/reset_password.html",form_class=UserSetPasswordForm),name="password_reset_confirm"), path('reset_password_complete/', auth_views.PasswordResetCompleteView.as_view(template_name="main/reset_password_complete.html"),name="password_reset_complete"), -
Docker-Compose container continuosly exits with error code 247
I'm currently trying to create a Django web server using Docker. When I run the Django webserver locally, by using python manage.py runserver 0.0.0.0:8000, everything works fine. This problem occurs when running the server using docker-compose up. The container starts and dis "Watching for file changes with StatReloader" message than hangs up there for a minute or two then exits. I've tried adjusting the amount of RAM and CPU cores available to docker and that hasn't fixed the problem. Any ideas on what could be causing this and how to fix it? -
Error when working with PasswordChangeView
Please help me to solve one problem. I want to change my login, mail and password on one page. I was able to implement a change of login and mail, but I could not push the change of password there, I get an error( __init__() got an unexpected keyword argument 'user' file views.py: from django.contrib.auth.views import PasswordChangeView from .forms import ProfileUpdateForm from django.contrib.auth.forms import PasswordChangeForm class ProfilePage(UpdateView, PasswordChangeView): model=Profile template_name="market/profile.html" second_form_class=ProfileUpdateForm third_form_class=PasswordChangeForm def get_success_url(self): obj=Profile.objects.get(user__username=self.object) return reverse_lazy('profile',kwargs={'slug': obj.slug},) def get_context_data(self, **kwargs): ctx = super(ProfilePage,self).get_context_data(**kwargs) ctx['PasswordChangeForm'] = self.third_form_class( prefix='PasswordChangeForm', # data = self.request.POST if 'PasswordChangeForm-submit' in self.request.POST else None, # files = self.request.FILES if 'PasswordChangeForm-submit' in self.request.POST else None, instance=self.request.user.profile, ) ctx['ProfileUpdateForm'] = self.second_form_class( prefix='ProfileUpdateForm', data = self.request.POST if 'ProfileUpdateForm-submit' in self.request.POST else None, files = self.request.FILES if 'ProfileUpdateForm-submit' in self.request.POST else None, instance=self.request.user, ) return ctx def get_form_kwargs(self): kwargs = super().get_form_kwargs() kwargs['user'] = self.request.user return kwargs -
How to add column in django user table and access it directly from admin page?
I have seen many answers to this question but none worked out. class userLogin(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) isManager = models.BooleanField(default=True) I have executed the commands python manage.py migrate and python manage.py makemigrations. The commands were executed successfully. I got an ok and change log in the terminal. If I click on add user on the admin page I can not see the field isManager w.r.t the user. I have triend adding AUTH_USER_MODEL = 'app.userLogin' in settings.py. -
Django: NotImplementedError: aggregate() + distinct(fields) not implemented
I have a table called reviews. In the reviews a person can leave multiple reviews for a service. A review can have a total score. I am trying to get the average of the total scores for the distinct reviews. Here is what I have: reviews = Review.objects.distinct('pairing').aggregate(Avg('total_score')); I keep getting this error: NotImplementedError: aggregate() + distinct(fields) not implemented. Could someone help me? I am fairly new to Django and have no clue why I am getting this. Thanks! -
How to generate UUID paths in views.py in Django?
I would like to create an object in views.py with an ID using UUID and then enter its specific path directly from the views file where I have create it. The error that I get is: TypeError at /item/create_item _reverse_with_prefix() argument after * must be an iterable, not UUID So I wonder whether anyone knows a way how this could be done? models.py: class Item(models.Model): id = models.UUIDField( primary_key=True, default=uuid.uuid4, editable=False) name = models.CharField(max_length=100, blank=True) views.py def create_item(request): context = {} if request.method == 'POST': name = request.POST['name'] item = Item(name=name) item.save() return HttpResponsePermanentRedirect(reverse('item', args=(item.id))) return render(request, 'items/item.html', context) def item(request, pk): item = get_object_or_404(Item, pk=pk) #Code to be written