2017-04-15 10 views
1

ユーザーからデータを取得しようとしています。 django.contrib.auth.modelsインポートユーザーユーザーfkでデータを取得するクエリDjango 1.11

から

from django.db import models 

ここにあなたのモデルを作成します。私はこのように私のモデルは持っています。

class informacionFacturacion(models.Model): 
    usuario = models.ForeignKey(User) 
    apellidos = models.CharField(max_length=100, default="editar") 
    nombres = models.CharField(max_length=100, default="editar") 
    telefono = models.CharField(max_length=100, default="editar") 
    email = models.EmailField(default="editar", null=False) 
    direccion_1 = models.CharField(max_length=100, default="editar") 
    direccion_2 = models.CharField(max_length=100, null=True, blank=True) 
    provincia = models.CharField(max_length=100, default="editar") 
    ciudad = models.CharField(max_length=100, default="editar") 
    codigoPostal = models.CharField(max_length=100, default="editar") 
    empresa = models.CharField(max_length=100, default="editar") 

    def __str__(self): 
     return self.usuario 

更新ユーザー情報のための私形式:

from .models import informacionFacturacion 

class informacionFacturacionForm(ModelForm): 
    class Meta: 
     model = informacionFacturacion 
     fields = [ 
      "usuario", 
      "apellidos", 
      "nombres", 
      "telefono", 
      "email", 
      "direccion_1", 
      "direccion_2", 
      "provincia", 
      "ciudad", 
      "codigoPostal", 
      "empresa", 
     ] 

そして、私の見解で、私はこの

from django.contrib.auth.decorators import login_required 
from .models import informacionFacturacion 
from .forms import informacionFacturacionForm 
@login_required 
def datosPersonales(request): 
    form = informacionFacturacionForm(request.POST or None) 
    if form.is_valid(): 
     instance = form.save(commit=False) 
     instance.save() 
    query = informacionFacturacion.objects.filter(usuario=request.user) 
    context = { 
     "titulo": "Datos personales | Cadenas Giordanino S.R.L" + request.user.username, 
     "body_class": "class= sidebar_main_open sidebar_main_swipe", 
     "form": form, 
     "infoFacturacion": query, 
    } 
    template = "micuenta/datosPersonales.html" 
    return render(request, template, context) 

ように私のクエリを持っており、このクエリセットは空です。

私は、ユーザープロファイル

** UPDATEでこのデータを取得する必要があります。ポストの**完全なコード。

**アップデート2:**プロフィールにユーザーデータを表示するには、 "Forループ"を使用します。このデータは、html入力の "value =" attrで取り出されます。ユーザーにデータがない場合、フォームdosntが表示されます。

これはデータを表示する方法です。私はこのフォームをここにある同じフォームから移入しました。 This is the way I wanna show the data. I populated this form from the same form u see here.

私はデータなしで私のプロファイルに初めて Here's when i enter for first time to my profile with no data

おかげで多くのことを入力すると、ここにあります。

+0

フィールドは 'user'と呼ばれています'user_id'ではありません。したがって: '.filter(user = request.user) ' – allcaps

+0

動作しません。 Queryset still []:/ –

+0

できるだけ早く私のフルコードで質問を更新します –

答えて

1

request.userは、anotherModelにリンクしているユーザーですか?現在ログインしていない場合は、request.userAnonymousUserのインスタンスになります。ドキュメントの詳細情報:https://docs.djangoproject.com/en/1.11/ref/request-response/#django.http.HttpRequest.user

あなたのモデルをテストするためのDjangoのシェルを使用することができます。

$ python manage.py shell 

その後、いくつかのモデル作り:あなたのモデルに

from django.contrib.auth.models import User 
from models import AnotherModel 

# Grab a User 
user = User.objects.first() 

# Create a new anotherModel, linking the user 
my_model = AnotherModel(
    user=user, 
    address="whatever" 
) 
my_model.save() 

my_model.user == user 
>>> True 
+0

私の更新について考えていますか? –

+0

クエリーセットが100%空いている場合、残っている説明は、実際には 'informacionFacturacion'モデルをユーザーに参照して保存していないということだけです。 –

+0

クエリーセットがうまくいきました。私の問題は、今投稿したimgです。このために新しい質問を作成する必要がありますか?または、私はここで助けることができます –

関連する問題