2016-01-29 76 views
0

我掙扎讓我的項目的正確查詢。下面是一個例子或我的模型:Django的篩選器查詢外鍵

class OrderItem(models.Model): 
    order_type = models.CharField(max_length=50, blank=True, null=True) 
    certification_no = models.CharField(max_length=10, default="43534") 
    client = models.ForeignKey(Client, blank=True, null=True) 
    item = models.CharField(max_length=500) 
    quantity = models.PositiveIntegerField(default=1) 
    rate = models.DecimalField(decimal_places=2, max_digits=7) 
    signer = models.CharField(max_length=500) 
    item_value = models.DecimalField(decimal_places=2, max_digits=7) 
    certification_type = models.CharField(max_length=200)   
    packing_list = models.FileField(upload_to='files/%Y-%m-%d', blank=True, null=True) 
    wholesale = models.BooleanField(default=False)  
    auth_fee = models.DecimalField(decimal_places=2, max_digits=7, blank=True, null=True) 
    label_position = models.CharField(max_length=250)  
    order = models.ForeignKey('Order', blank=True, null=True) 
    ordered = models.BooleanField(default=False) 
    created_on = models.DateTimeField(auto_now_add = True) 

    def __unicode__(self): 
     return self.item 

    def total_auth_fee(self): 
      return self.quantity * self.auth_fee 

    class Meta: 
     ordering = ['-created_on'] 

class Client(models.Model): 
    user = models.OneToOneField(User) 
    phone_number = models.PositiveIntegerField(max_length=30,blank=False) 
    shipping_address = models.CharField(max_length=500, null=True) 
    zipcode = models.CharField(max_length=30,blank=False)  

    class Meta: 
     verbose_name_plural = "Client" 

    def __unicode__(self): 
     return self.user.username 

做我得到PHONE_NUMBER,(名稱在客戶端和電子郵件地址也)如何在內置Django的形式?謝謝

+0

您的問與答uestion不清楚,你想查詢哪個模型?查詢與表單有什麼關係?你的表單在哪裏? –

+0

我想查詢客戶端的型號 – uche

+0

然後,你嘗試過哪些查詢並且不起作用? –

回答

0

在你的HTML代碼,你可以輕鬆地訪問用戶信息。例如

<p>{{ user.username }}</p> 
<p>{{ user.email }}</p> 
<p>{{ user.first_name }}</p> 
<p>{{ user.last_name }}</p> 

,如果你想訪問他們的Django的形式,只需添加from django.contrib.auth.models import User第一代碼

例如看看這個代碼。這是一個簡單的形式添加新用戶

views.py

def Signup(request): 
if request.method == "POST": 
    if not request.user.is_authenticated(): 
     form = UserCreationForm(request.POST) 
     if form.is_valid(): 
      new_username = form.cleaned_data['username'] 
      new_password = form.cleaned_data['password1'] 
      new_email = form.cleaned_data['email'] 
      new_first_name = form.cleaned_data['first_name'] 
      new_last_name = form.cleaned_data['last_name'] 
      #hashed_password = hashlib.md5(new_password).hexdigest() 
      new_user = User.objects.create_user(
         username = new_username, 
         email = new_email, 
         first_name = new_first_name, 
         last_name = new_last_name) 
      if new_password: 
       new_user.set_password(new_password) 
      else: 
       new_user.set_unusable_password() 
      new_user.save() 
      new_user.is_active = True 
      auth_user = authenticate(username = new_username, password = new_password) 
      if auth_user is not None: 
       login(request, auth_user) 
      return HttpResponseRedirect('../') 
else: 
    form = UserCreationForm() 
return render(request, 'Dashboard/signup.html', {'form': form}) 

forms.py

from django.contrib.auth.forms import UserCreationForm 

class SignupForm1(UserCreationForm): 
    class Meta: 
     model = User 
     fields = ('username', 'password', 'email', 'first_name' , 'last_name') 

如果你看一下forms.pySignupForm1繼承User那麼你就可以有用戶信息(場)