0
沒有屬性這裏是我的模型UUIDField有uuid4
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
import uuid
class PiO(models.Model):
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # surrogate
person = models.ForeignKey(Person, on_delete=models.PROTECT, max_length=25, blank=True)
content_type = models.ForeignKey(ContentType, on_delete=models.PROTECT) # for the various organization types
object_id = models.UUIDField(primary_key=False, default=uuid.uuid4, editable=False) # the uuid of the specific org
content_object = GenericForeignKey('content_type', 'object_id')
這是我回溯
AttributeError: 'UUIDField' object has no attribute 'uuid4'.
注意這是專門引用OBJECT_ID場,不的UUID(PK)字段。作爲一項測試,我評論了object_id字段。我做了而不是因爲沒有object_id字段而得到一個錯誤,並且檢查發生了12行的新錯誤。
我用Google搜索精確短語,並得到
No results found for "AttributeError: 'UUIDField' object has no attribute 'uuid4'".
我所做的看起來符合the docs給我。
我錯過了什麼?泛型外鍵和/或內容類型的存在與它有什麼關係?
謝謝。對於Sayse提出的幫助我的初步評論,也許他花了一些分數;-)。只是一些事情。我將不得不回頭重構我的代碼,因爲我命名了很多pk字段'uuid'。不是世界末日。另外,當我用id替換uuid作爲字段名稱時,它變成了藍色(與我的Sublime主題中的'class'相同的顏色),這是'紅旗'。請參閱https://docs.djangoproject.com/en/1.10/topics/db/models/#automatic-primary-key-fields和http://stackoverflow.com/questions/77552/id-is-a-bad- python中的變量名稱。所以我決定只是將它們全部更改爲uuid_ –
UPDATE,對於有此問題的任何人。雖然Python允許uuid_,但Django不會,所以你必須找出另一個名字。 –
Django允許模型字段帶有前導下劃線,例如'_uuid',但不是尾部下劃線,例如'uuid_'。話雖如此,我不明白爲什麼你必須找出另一個名字。如果您更改導入,您可以保留'uuid'。或者,你可以使用'id'。 Django使用'id'作爲自動生成的主鍵,所以你也可以使用它。我意識到你的編輯器會顯示警告,但在這種情況下可以忽略。 – Alasdair