2016-09-21 3 views
0

Ich habe Token Auth in django umgesetzt und meine Modelle sieht wie-Django in einem Modell mit Benutzerfeld Speichern

class Portfolio(models.Model): 
    owner = models.ForeignKey(User, verbose_name='User', null=True) 
    company = models.TextField(null=True) 
    volume = models.IntegerField(blank=True) 
    date = models.DateField(null=True) 

Und in diesem Modell zu speichern, ich habe nach dem in Aufrufe-

arr = [] 
contents = request.data 
user = User.objects.filter(username=request.user) 
user_is = User(username=user) 
    for i in range(0, len(portfolio_contents)): 
    line = portfolio_contents[i].split(",") 
    get_isin = Endday.objects.get(company=line[0]) 
    datestuff = line[2] 
    datestuff = datestuff[0:10] 
    arr.append(Portfolio(owner=user_is, company=line[0], volume=line[1], date=datestuff)) 
    Portfolio.objects.bulk_create(arr) 

Dieser Code speichert die Daten, aber wenn ich versuche, um die Daten zu sehen, bekomme ich this-

[ 
{ 
    "company": "BAL", 
    "volume": 1425, 
    "date": "2014-02-19", 
    "owner": null 
}, 
{ 
    "company": "RLD", 
    "volume": 2245, 
    "date": "2014-02-19", 
    "owner": null 
}, 

Besitzer sollte n ot sein null, denn wenn ich versuche, print(user.username), druckt es <QuerySet [<User: ku>]>.

Was scheint das Problem zu sein?

Antwort

0

Das liegt daran, dass Sie Ihren Benutzer nicht gespeichert haben, z. Es hat keine ID in der Datenbank. Sie benötigen auch eine User Instanz und nicht QuerySet, die Sie von User.objects.filter(username=request.user) aufrufen können.

Versuchen Sie:

user_is = User.objects.get(username=request.user.username) 
0

Ihre user_is ist eine User Modellinstanz, die nicht gespeichert in der Datenbank:

user_is = User(username=user) # ??? username != user 

Warum nicht tun:

user_is = User.objects.get(username=request.user.username) 

Oder owner=request.user im ForeignKey Feld macht in deine Schleife.

Verwandte Themen