2017-02-08 2 views
0

Я работаю на дублирующей системы отчетности на Django, и я создал таблицу на моем models.py, который идетДжанго __str__ вернулся нестроковой (тип кортежа), я не определил __str__

class DupReport(models.Model): 
count = models.IntegerField() 
oldersub = models.ForeignKey('Submission', on_delete=models.CASCADE, related_name='older_sub') 
newersub = models.ForeignKey('Submission', on_delete=models.CASCADE, related_name='newer_sub') 

И когда я иду к администратору, чтобы добавить строку, в меню, которое отображает строки работает отлично, но когда я нажимаю добавить DupReport, я получаю это:

TypeError в/админ/apppickoff/dupreport/добавить/

str возвращается нестроковой (тип кортежа)

< A HREF = "{% add_preserved_filters history_url%}" класс = "historylink"> {% транс "История" %} </а>

ответ

0

Look для блуждающей запятой в конце любых __str__ определений, которые вы пишете.

Возвращая значение с запятой в конце, вы превратите свое значение в кортеж, содержащий это значение.

+0

oh спасибо, что сработал, хотя я удалил запятую из __str__ другой таблицы, и эта таблица работала просто отлично –

+0

@ViniciusVaghetti Это, вероятно, из-за того, что представление администратора таблицы не вызывает '__str __()' модели. Но '__str __()' вызывается для целевых моделей внешних ключей. – dhke

+0

О, это имеет смысл, это была модель представления, которая должна отображаться, когда я должен был добавить новый DupReport и прочитал бы его __str__ –