2017-02-14 7 views
0

管理者は、自分のモデルのいずれかにインスタンスを追加しようとしているときにこのエラーを返します。モデル自体に正しいstr()メソッドがあり、インスタンスがまだありません。また、str()メソッドを静的メソッドに置き換えるか、まったく削除することを試みました。運がない。adminのエラー:__str__は文字列以外の文字列を返しました(タイプなしタイプ)

エラーは、管理者の履歴部分で何か問題が発生しているように思えます。これらは、私のmodels.pyadmin.py

class UserContent(models.Model): 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 
    created_by = models.ForeignKey(User, related_name='%(class)s_creator') 
    updated_by = models.ForeignKey(User, related_name='%(class)s_updater') 

    class Meta: 
     abstract = True 


class Linetrans(UserContent): 
    line = models.ForeignKey(Line) 
    translation = models.ForeignKey(Translation) 
    text = models.CharField(max_length=400) 

    #def __str__(self): 
    # return self.text 

    class Meta: 
     ordering = ['line'] 

admin.site.register(Linetrans) 

他のモデルクラスの関連する部分です33.

Error during template rendering 

In template /Users/snirp/juis/snirpdrive/glotto/venv/lib/python3.6/site-packages/django/contrib/admin/templates/admin/change_form.html, error at line 33 
__str__ returned non-string (type NoneType) 
23 {% endblock %} 
24 {% endif %} 
25 
26 {% block content %}<div id="content-main"> 
27 {% block object-tools %} 
28 {% if change %}{% if not is_popup %} 
29 <ul class="object-tools"> 
30  {% block object-tools-items %} 
31  <li> 
32   {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %} 
33   <a href="{% add_preserved_filters history_url %}" class="historylink">{% trans "History" %}</a> 
34  </li> 
35  {% if has_absolute_url %}<li><a href="{{ absolute_url }}" class="viewsitelink">{% trans "View on site" %}</a></li>{% endif %} 
36  {% endblock %} 
37 </ul> 
38 {% endif %}{% endif %} 
39 {% endblock %} 
40 <form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.model_name }}_form" novalidate>{% csrf_token %}{% block form_top %}{% endblock %} 
41 <div> 
42 {% if is_popup %}<input type="hidden" name="{{ is_popup_var }}" value="1" />{% endif %} 
43 {% if to_field %}<input type="hidden" name="{{ to_field_var }}" value="{{ to_field }}" />{% endif %} 

行目にスタックトレースポイントが非常に類似しており、エラーを返しません。 。このエラーは、Linetransが別の管理クラスにインラインで追加された場合にも発生します。

編集/更新:私のモデルでは他のすべてのstr()メソッドをコメントアウトしていますが、間違いなくエラーが消えているようです。今問題を突き止めようとしています。

答えて

11

関連モデルで予期しない空のCharFieldがあったことがわかります。他人を助けるかもしれないので、これを答えとして残す。

問題のトラブルシューティングを行うには、モデルの__str__()メソッドを体系的にコメントアウトしてください。問題のあるレコードを特定するためにそこから作業します。

+0

戻りself.customerName "ERROR-顧客NAMEがNULL IS" 'self.title 'self.titleまたは '''の代わりに ' – Seth

1

私も同様の問題がありました。問題は、ある行のプライマリキーがnullだったことです(私はそのことがどうなったかわかりません)。カスケード問題のために私は行を削除できませんでした。だから、str mmethodをこのようなものに変更しなければならなかった。

デフSTR(自己): 場合self.customerName ==なし: リターン私は返さ__str__メソッドを持っていた

関連する問題