Im建物Django + Angular2プロジェクト。ログイン後にDjango rest framework/Angular2 buggsで単一のオブジェクトを取得
私は、現時点ではそれは私がログインしたときに、このことを、バグで働く意志/users/{{ user.id }}
へのルート、サイドバーがあり、そこにSettings
を追加する必要がありますfor loop
がないので
<li *ngFor="let user of users"><a routerLink="https://stackoverflow.com/users/{{ user.id }}" style="cursor: pointer">Settings</a></li>
は表示されません任意のデータがあります。ページをリフレッシュすると、サイドバーに表示され、完璧に動作します。主なアイデアは、許可されたユーザーの設定を開くことです。
これは、私は、ユーザーを取得する方法である:
getUsers() {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let authToken = localStorage.getItem('auth_token');
headers.append('Authorization', `JWT ${authToken}`);
return this.http
.get(this.apiURL, { headers })
.toPromise()
.then(res => res.json());
}
問題は、私はDjangoフレームワークで、私は、オブジェクトをフィルタリングし、項目のリストを取得するため、forループを使用する必要があるということです。
class UserViewSet(viewsets.ModelViewSet):
serializer_class = UserSerializer
def get_queryset(self):
user = self.request.user
queryset = User.objects.filter(id=user.id)
return queryset
queryset = User.objects.filter(id=None)
が角にfor loop
を使用しないようにデータの1つのオブジェクトのみではないリストを取得する方法があります:実際に私は、現時点でログインしている唯一の、ユーザー(views.pyからコード)を得るためにそれらをフィルタリングします(多分それはバグを修正するだろう)。あるいは、あなたが私に説明して、そのことを修正する方法、設定が消えてリフレッシュ後にのみ表示されることを言うことができます。実際には、間違ったコンポーネントや間違った方法でgetUsers関数を使用していることは確かです。
マイapp.component.ts:確かに
ngOnInit(): void {
this.userService
.getUsers()
.then(users => this.users = users)
}
私にはわからないが、どこに問題と理由ログイン後のループのためのデータを持っていないので、私は、コードのどのような平和を知りませんあなたは私を助ける必要があります。より多くのコードが必要な場合は、尋ねてください。
@Remi次にviewsetがエラーを返します '' User 'オブジェクトは反復可能ではありません – Trimidas