2017-01-19 12 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

私はすでに言及したように間違ったアプローチです。Foreign Key relationships(generic)とhttps://docs.djangoproject.com/en/1.10/ref/models/fieldsでお読みください/#django.db.models.ForeignKey – e4c5

答えて

2

の代わりにテキストとしてコードを投稿してください...「ROBERTO」で自動的に記入する必要があります画像。あなたはそのようなユーザー名を追加することはできません。実際に行うべきことは、Userモデルに対してForeingKeyまたはOneToOneFieldを作成することです。あなたのArchivoモデルにユーザー名を入力するのは間違っています。あなたのモデルとArchivoモデルとの間に明確な関係はありません。つまり、Djangoが関連するモデルを扱うために提供する広大な機能を使用することはできません。

次に、ユーザー名が変更されたらどうなりますか?あなたのarchivoモデルはどうなりますか?彼らはぶら下がっている。

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

が次にあなたがArchivoオブジェクトを保存する必要がある時に、あなたが編集への対応からrequest.user

if request.user.is_authenticate(): 

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

コードは現在テキストです。私は何をしたいのか説明しようとしています...私は現在のユーザーとフィールド "usuario"に記入したいと思います。たとえば、 "betofm92"は管理者で、私はそれを記入したいと思います。可能です? –

関連する問題