Löschen Ich habe einen seltsamen Fehler:Admin Fehler Django während
TypeError at /admin/wall/articles/
__str__ returned non-string (type Articles)
Ich habe ein Modell Artikel. Ich versuche gerade einige Artikel meiner Datenbank aus dem Admin-Panel von Django zu löschen. Ich sagte, es ist merkwürdig, weil es nur bei einigen Objekten passiert. Ich kann die meisten Artikel entfernen, aber aus irgendeinem Grund geben einige Einträge in der Datenbank einen Fehler zurück, wenn ich sie lösche. Für meine anderen Modelle ist das nicht der Fall.
Dies ist ein Screenshot von phpMyAdmin alle Einträge in meiner Tabelle „Artikel“ zeigt:
Zum Beispiel habe ich einen Eintrag mit der ID 70. Im Pannel Django Admin ich nicht löschen kann Ich habe einen Fehler. Zum Testen erstellen Sie den genauen Eintrag (siehe ID 75) und ich kann diesen Eintrag aus dem Django Admin Pannel löschen.
Warum konnte ich einige Inhalte löschen, aber nicht alle?
Das ist mein models.py:
from django.db import models
from start.models import Games
from django.contrib.auth.models import User
from tinymce.models import HTMLField
# Create your models here.
def user_directory_path_articles(instance, filename):
return 'media/user/user_{0}/articles/{1}/'.format(instance.user.id, filename)
def user_directory_path_comments(instance, filename):
return 'media/user/user_{0}/comments/{1}/'.format(instance.user.id, filename)
def validate_file_extension(value):
import os
from django.core.exceptions import ValidationError
ext = os.path.splitext(value.name)[1] # [0] returns path+filename
valid_extensions = ['.jpg', '.png']
if not ext.lower() in valid_extensions:
raise ValidationError(u'Merci d\'utiliser le format JPG ou PNG')
class Articles(models.Model):
title = models.CharField(max_length=50, null=False, verbose_name="Titre")
text = HTMLField()
image = models.FileField(upload_to='media/articles/', validators=[validate_file_extension], blank=True, null=True, verbose_name="Image de présentation")
games = models.ForeignKey(Games, verbose_name="Jeux", blank=True, null=True)
author = models.ForeignKey(User, verbose_name="Auteur")
is_statut = models.BooleanField(default=True, verbose_name="Statut")
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création")
update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification")
def __str__(self):
return self.title
class Comments(models.Model):
text = models.CharField(max_length=300, null=False)
image = models.FileField(upload_to=user_directory_path_comments, validators=[validate_file_extension], blank=True, null=True)
articles = models.ForeignKey(Articles, verbose_name="Article", null=False, related_name='comments')
author = models.ForeignKey(User, verbose_name="Auteur")
in_answer_to = models.ForeignKey('self', verbose_name="En réponse au commentaire", blank=True, null=True, on_delete=models.CASCADE)
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création")
update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification")
def __str__(self):
return self.text
class Like(models.Model):
articles = models.ForeignKey(Articles, verbose_name="Article", null=True, blank=True)
user = models.ForeignKey(User, verbose_name="Auteur", null=False)
def __str__(self):
return self.articles
class Up(models.Model):
comments = models.ForeignKey(Comments, verbose_name="Commentaire", null=True, blank=True)
user = models.ForeignKey(User, verbose_name="Auteur", null=False)
Das ist mein admin.py:
from django.contrib import admin
from .models import Articles, Comments
# Register your models here.
class ArticlesAdmin(admin.ModelAdmin):
list_display = ('date', 'title', 'author', 'games', 'is_statut', 'update')
fieldsets = (
('Général', {
'fields': ('title', 'author', 'is_statut')
}),
('Choisir une image de présentation', {
'fields': ('image',)}),
('Contenu de l\'article', {
'fields': ('text',)}),
('En rapport avec le jeu :', {
'fields': ('games',)}),
)
admin.site.register(Articles, ArticlesAdmin)
Dies ist der Zurückverfolgungs meiner Fehlerseite, und vielen Dank für Ihre Hilfe:
Environment:
Request Method: POST
Request URL: http://*******:8000/admin/wall/articles/
Django Version: 1.11.2
Python Version: 3.5.3
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'widget_tweaks',
'tinymce',
'start',
'myaccount',
'wall']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/options.py" in wrapper
551. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/sites.py" in inner
224. return view(request, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/utils/decorators.py" in _wrapper
67. return bound_func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/utils/decorators.py" in bound_func
63. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/options.py" in changelist_view
1568. response = self.response_action(request, queryset=cl.get_queryset(request))
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/options.py" in response_action
1286. response = func(self, request, queryset)
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/actions.py" in delete_selected
37. queryset, opts, request.user, modeladmin.admin_site, using)
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/utils.py" in get_deleted_objects
172. to_delete = collector.nested(format_callback)
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/utils.py" in nested
232. roots.extend(self._nested(root, seen, format_callback))
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/utils.py" in _nested
216. children.extend(self._nested(child, seen, format_callback))
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/utils.py" in _nested
218. ret = [format_callback(obj)]
File "/usr/local/lib/python3.5/dist-packages/django/contrib/admin/utils.py" in format_callback
145. force_text(obj))
File "/usr/local/lib/python3.5/dist-packages/django/utils/encoding.py" in force_text
76. s = six.text_type(s)
Exception Type: TypeError at /admin/wall/articles/
Exception Value: __str__ returned non-string (type Articles)
Haben Sie weitere Modelle mit Fremdschlüsseln, die auf Artikel zeigen? Bitte poste sie wenn ja. –
Ja, ich aktualisiere meinen Beitrag. Das ist meine gesamte models.py-Datei – GrandGTO