這裏是我的models.py
:Django的get_or_create方法不返回確切的對象
class Foo(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=30)
在Django manage.py shell
:
>>> a,b = Foo.objects.get_or_create(name='hi')
>>> b
True
>>> vars(a)
{'_state': <django.db.models.base.ModelState object at 0x02761390>, 'id': None,
'name': 'hi'}
這裏的問題是定製id
屬性沒有價值。如果我繼續做到以下幾點:
>>> c = foo.objects.get(name='hi')
>>> c.id
1
>>> a is c
False
使新創建的對象(由c
表示)現在已經存在,但b
不是一個精確的參考它像c
是。
這是一個錯誤?我的django版本是1.6.5。
你爲什麼要比較'b'和'c'? 'b'是由'get_or_create'返回的布爾「created」,'c'是對象。 – coldmind 2014-09-05 09:11:00
@coldmind對不起。只是糾正它,問題仍然存在。 – wlnirvana 2014-09-05 10:46:10