'set' object is not reversibleが表示されてadminやサイトの一部が表示されません。
test_projectというプロジェクトにhillsfort_boardというアプリケーションを作成してモデルを作成して、それをローカルで表示することまではうまくいきました。今度はconohaのVPSとnginx,gunicornを使い本番環境で表示しようとしたところ、admin/,board/にアクセスしようとするとTypeError 'set' object is not reversibleが表示されてうまくいきません。board/testにはアクセスできて普通に表示されました。原因がまったくわかりません。
こういうエラーです
https://qiita.com/kosments/items/2493472b422632e966ec
すみません。上記の説明はあまり的を射た説明ではないので書き直します。
urlテンプレートタグ "{% url 'index' %}"を使ったページにアクセスするときまたはadmin/にアクセスするときにTypyError:'set' object is not reversibleが出ます。たぶんmodel作成は関係ないです。自分自身もよくわかっていないので話が支離滅裂になってすみません。もしわかる方がいたら回答よろしくお願いします。
プロジェクト内のurls.py
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('board/', include('board.urls')), ]
プロジェクト内のsetting.pyの抜粋
DEBUG = True INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'board', ]
アプリケーション内のurls.py
urlpatterns = [ path('', views.home, name='home'), path('test', views.index, name='index'), ]
アプリケーション内のadmin.py
from django.contrib import admin from .models import CommentModel admin.site.register(CommentModel)
アプリケーション内のmodels.py
import re from django.db import models from django.core.validators import ValidationError class CommentModel(models.Model): name=models.CharField(max_length=100) #date=models.DateField(auto_now_add=True) date = models.DateTimeField(auto_now_add=True) text=models.TextField()
アプリケーション内のviews.py
from django.shortcuts import render from .models import CommentModel from .forms import CommentForm from django.shortcuts import redirect # Create your views here. def home(request): #modelを利用してコメントを並べるページ data=CommentModel.objects.all() if(request.method=='POST'): obj=CommentModel() comment=CommentForm(request.POST, instance=obj) comment.save() return redirect(to='/board') params={ 'title':'hello', 'form': CommentForm(), 'data': data, } return render(request, 'board/home.html', params) def index(request): #ただhelloと表示するだけのページ params={ 'title':'hello', } return render(request, 'board/index.html',params)
django 3.2
python 3.8.8
ubuntu 20.04.2 LTS
あなたの回答
tips
プレビュー