2017-01-19 53 views
-1

我想填充我的模型中的字段與Django 1.10中的當前用戶名。如何在django 1.10中獲取當前的「用戶名」?

這是我正在使用的代碼。

class Archivo(models.Model): 
    nombre = models.CharField(max_length = 30) 
    documento = models.FileField() 
    fecha_creacion = models.DateField(default = timezone.now) 
    observaciones = models.CharField(max_length = 20) 
    usuario = models.CharField(User.get_username()) 
    transferencia = models.ForeignKey(User) 

,我試圖填補該領域是「usuario」

而且我得到了一個錯誤: TypeError: get_username() missing 1 required positional argument: 'self'

我這樣做不對嗎?順便說一下,我沒有使用視圖,我試圖直接從管理網站執行此操作。

我張貼此圖像作爲例子,我試圖做的,現場「Usuario」應自動與「羅伯託」的名字填寫...

Example

+0

響應編輯抓住它:究竟是什麼你想從管理辦現場? – e4c5

+0

@ e4c5請檢查圖像 –

+1

正如我已經提到的,這是錯誤的方法,請閱讀外鍵關係(通用),然後https://docs.djangoproject.com/en/1.10/ref/models/fields /#django.db.models.ForeignKey – e4c5

回答

2

請張貼代碼作爲文本,而不是圖片。你不能添加這樣的用戶名。你應該真正做的是爲用戶模型創建一個ForeingKey或OneToOneField。在Archivo模型中輸入用戶名是錯誤的。那麼你的模型和你的Archivo模型之間沒有明確的關係。這意味着您無法使用Django提供的用於處理相關模型的大量功能。

其次,如果用戶名更改?你的archivo模型會發生什麼?他們留下了懸掛。

Class Archivo(models.Model) 
    usero = models.ForeignKey(User) 
    ... 

然後在需要保存一個檔案館對象的時候,你需要從request.user

if request.user.is_authenticate(): 

    arch = Archivo.objects.create(user=request.user, ...) 
+0

該代碼現在是文本。我會盡力解釋我想要做的事情......我想用我當前的用戶來填充「usuario」字段,例如「betofm92」是管理員,我想填補這一點。有可能的? –