4
4
モデルインスタンスリファレンス
5
5
===============================
6
6
7
- :revision-up-to: 13211 (1.1 ) unfinished
7
+ :revision-up-to: 17812 (1.4 ) unfinished
8
8
9
9
.. currentmodule:: django.db.models
10
10
@@ -248,6 +248,31 @@ Deleting objects
248
248
249
249
モデルには、特殊な使われ方をするメソッドがあります:
250
250
251
+ ``__unicode__``
252
+ ---------------
253
+
254
+ .. method:: Model.__unicode__()
255
+
256
+ ``__unicode__()`` メソッドは、オブジェクトに対して ``unicode()`` を呼び出し
257
+ た際に呼び出されます。Django のデータベースバックエンドはモデルの属性値とし
258
+ て Unicode 文字列を返すので、通常はモデルの ``__unicode__()`` メソッドを定
259
+ 義するとよいでしょう。前節の例を ``__unicode__()`` を使って書き直すと、以下
260
+ のように簡単になります::
261
+
262
+ class Person(models.Model):
263
+ first_name = models.CharField(max_length=50)
264
+ last_name = models.CharField(max_length=50)
265
+
266
+ def __unicode__(self):
267
+ return u'%s %s' % (self.first_name, self.last_name)
268
+
269
+ モデルに ``__unicode__()`` メソッドだけを定義して、 ``__str__()`` は定義し
270
+ ないでおくと、 Django が自動的に ``__str__()`` メソッドをモデルに追加します。
271
+ この ``__str__()`` メソッドは、 ``__unicode__()`` を呼び出して、その戻り値
272
+ を UTF-8 でエンコードした文字列を返します。開発上はこの仕様に従い、
273
+ ``__unicode__()`` だけを定義して、文字列オブジェクトへの変換は Django 任せ
274
+ にするよう勧めます。
275
+
251
276
``__str__``
252
277
-----------
253
278
@@ -274,31 +299,6 @@ Deleting objects
274
299
# django.utils.encoding.smart_str() を使う
275
300
return smart_str('%s %s' % (self.first_name, self.last_name))
276
301
277
- ``__unicode__``
278
- ---------------
279
-
280
- .. method:: Model.__unicode__()
281
-
282
- ``__unicode__()`` メソッドは、オブジェクトに対して ``unicode()`` を呼び出し
283
- た際に呼び出されます。Django のデータベースバックエンドはモデルの属性値とし
284
- て Unicode 文字列を返すので、通常はモデルの ``__unicode__()`` メソッドを定
285
- 義するとよいでしょう。前節の例を ``__unicode__()`` を使って書き直すと、以下
286
- のように簡単になります::
287
-
288
- class Person(models.Model):
289
- first_name = models.CharField(max_length=50)
290
- last_name = models.CharField(max_length=50)
291
-
292
- def __unicode__(self):
293
- return u'%s %s' % (self.first_name, self.last_name)
294
-
295
- モデルに ``__unicode__()`` メソッドだけを定義して、 ``__str__()`` は定義し
296
- ないでおくと、 Django が自動的に ``__str__()`` メソッドをモデルに追加します。
297
- この ``__str__()`` メソッドは、 ``__unicode__()`` を呼び出して、その戻り値
298
- を UTF-8 でエンコードした文字列を返します。開発上はこの仕様に従い、
299
- ``__unicode__()`` だけを定義して、文字列オブジェクトへの変換は Django 任せ
300
- にするよう勧めます。
301
-
302
302
``get_absolute_url``
303
303
--------------------
304
304
0 commit comments