У Django нет атрибута объекта с именем text - но я этого не ожидаю? - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть структура ниже,

Когда я нажимаю на название модели в представлении администратора, я получаю ошибку ниже. Что это значит?

AttributeError at /admin/app/tasksx/
'tasksx' object has no attribute 'text'
Request Method: GET

Admin.py

from django.contrib import admin
from .models import tasksx

admin.site.register(tasksx)

Views.py

def create_task(request):
    if request.method == 'POST':
        creator = request.user
        job_title = 'data engineer'
        skill_name = request.POST.get('skill_name')
        starting = request.POST.get('starting')
        description = request.POST.get('description')
        target_date = request.POST.get('target_date')
    i = tasksx.objects.create(creator=creator, job_title=job_title, skill_name=skill_name,  starting=starting, current=starting, description=description, target_date=target_date)
    messages.success(request, ('Skill created'))
    return redirect('index')

models.py

class tasksx(models.Model):
    job_title = models.CharField(max_length=400, default="data")
    creator = models.CharField(max_length=400, default="none")
    skill_name = models.CharField(max_length=400, default="none")
    starting = models.CharField(max_length=400, default="none")
    current = models.CharField(max_length=400, default="none")
    description = models.CharField(max_length=4000000, default="none")
    target_date = models.DateTimeField(default=datetime.now)
    def __str__(self):
        return self.text

Ответы [ 2 ]

1 голос
/ 11 ноября 2019

Расширяя мои комментарии, чтобы избежать расширенного обсуждения:

В методе tasksx вашей модели *1003* вы пытаетесь вернуть self.text, когда у вас нет поля text где-либо в модели. .

Если вы хотите отобразить заголовок, измените метод возврата на.

def __str__(self):
    return self.job_title

Сейчас, , если вы хотите увидеть все поля в интерфейсе администратора,вам необходимо изменить admin.py.

admin.py

from django.contrib import admin
from .models import tasksx

class Tasksx_Admin(admin.modelAdmin):
    # Add whatever fields you want to display in the admin 
    # in list_diplay tuple.

    list_display = ('job_title', 'creator', 'skill_name', 'starting', 'current', 'description', 'target_date', )

# Register the Taskx_Admin class.

admin.site.register(tasksx, Taskx_Admin)
вашего приложения.
1 голос
/ 11 ноября 2019

В модели tasksx вы определили:

def __str__(self):
    return self.text

Но в модели нет свойства текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...