[英]Django Filter Queries Foreign Key
我正在努力為我的項目獲取正確的查詢。 這是一個例子或我的模型:
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
我如何以內置的django格式獲取phone_number((客戶名稱和電子郵件地址))? 謝謝
在您的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})
表格
from django.contrib.auth.forms import UserCreationForm
class SignupForm1(UserCreationForm):
class Meta:
model = User
fields = ('username', 'password', 'email', 'first_name' , 'last_name')
如果您查看forms.py
, SignupForm1
從User
繼承,那么您可以獲取用戶信息(字段)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.