我正在写一个用户可以在浏览器中填写的表单。其中一个问题是选择一个介于10000和100000之间的数字。我该如何提示用户这样做呢?如果他们不这样做,我希望弹出一条消息,让他们实际选择一个介于10000和100000之间的数字。处理这个特殊数字的变量称为借用。表单上的数据当前保存在sqlite3表中。你知道吗
这是我的型号.py:
from django.db import models
from django.core.validators import MinValueValidator
from django.core.validators import MaxValueValidator
class User(models.Model):
#to store user data
firstname = models.CharField(max_length=100)
surname = models.CharField(max_length=100)
email = models.CharField(max_length=100)
telephone_number = models.CharField(max_length=15)
company_name = models.CharField(max_length=100)
company_street_address = models.CharField(max_length=100)
city = models.CharField(max_length=100)
postcode = models.CharField(max_length=10)
company_number = models.CharField(max_length=9)
filter_choices = (
('retail', 'Retail'),
('professional services', 'Professional Services'),
('food & drink', 'Food & Drink'),
('entertainment', 'Entertainment'),
)
business_sector = models.CharField(max_length=100, choices=filter_choices)
days = models.CharField(max_length=5)
reason_for_loan = models.CharField(max_length=2000)
#borrowing = models.IntegerField(choices=[(i, i) for i in range(1, 1)], blank=True)
#borrowing = models.IntegerField((validators=[MaxValueValidator(100),MinValueValidator(1)])
borrowing = models.IntegerField(validators=[MinValueValidator(1),MaxValueValidator(100)])
if 10000 <= borrowing <= 100000:
#borrowing = models.CharField(max_length=100)
def __str__(self):
return self.firstname
正如你所看到的,我试过很多借钱的方法,但运气不好。你知道吗
这是我的表单.py:
from django import forms
from django.core.validators import MinValueValidator
from django.core.validators import MaxValueValidator
class UserForm(forms.Form):
firstname = forms.CharField(max_length=100)
surname = forms.CharField(max_length=100)
email = forms.CharField(max_length=100)
telephone_number = forms.CharField(max_length=15)
company_name = forms.CharField(max_length=100)
company_street_address = forms.CharField(max_length=100)
city = forms.CharField(max_length=100)
postcode = forms.CharField(max_length=10)
company_number = forms.CharField(max_length=9)
filter_choices = (
('retail', 'Retail'),
('professional services', 'Professional Services'),
('food & drink', 'Food & Drink'),
('entertainment', 'Entertainment'),
)
business_sector = forms.ChoiceField(choices = filter_choices)
days = forms.CharField(max_length=5)
reason_for_loan = forms.CharField(max_length=2000,widget=forms.Textarea)
borrowing = forms.IntegerField(validators=[MinValueValidator(10000),MaxValueValidator(100000)])
## business_sector = forms.CharField(
## ('retail', 'retail'),
## ('professional_services', 'professional_services'),
## ('food_&_drink', 'food_&_drink'),
## ('entertainment', 'entertainment'))
这是我的视图.py:
from django.shortcuts import render
from users.forms import UserForm
from users.models import User
# the function executes with the signup url to take the inputs
def signup(request):
if request.method == 'POST': # if the form has been filled
form = UserForm(request.POST)
if form.is_valid():
# creating user data
user_obj = form.save()
return render(request, 'users/signup.html', {'user_obj': user_obj,'is_registered':True }) # Redirect after POST
firstname = request.POST.get('firstname', '')
surname = request.POST.get('surname', '')
email = request.POST.get('email', '')
telephone_number = request.POST.get('telephone_number', '')
company_name = request.POST.get('company_name', '')
company_street_address = request.POST.get('company_street_address', '')
city = request.POST.get('city', '')
postcode = request.POST.get('postcode', '')
company_number = request.POST.get('company_number', '')
form = request.POST.get('form', '')
business_sector = request.POST.get('business_sector', '')
borrowing = request.POST.get('borrowing', '')
days = request.POST.get('days', '')
reason_for_loan = request.POST.get('reason_for_loan', '')
user_obj = User(firstname=firstname, surname=surname, email=email,
telephone_number=telephone_number,company_name=company_name,
company_street_address=company_street_address,city=city,
postcode=postcode,company_number=company_number,
business_sector=business_sector,borrowing=borrowing,
days=days,reason_for_loan=reason_for_loan)
# saving all the data in the current object into the database
else:
form = UserForm() # an unboundform
return render(request, 'users/signup.html', {'form': form})
#the function executes with the showdata url to display the list of registered users
def showdata(request):
all_users = User.objects.all()
return render(request, 'users/showdata.html', {'all_users': all_users, })
这是我的html:
<!-- The alert box to be shown when the submit button is clicked-->
{% if is_registered %}
<script>alert("You are successfully registered with your new business with:{{user_obj.company_name }} and Email: {{ user_obj.email }}")</script>
{% else %}
<form action="{% url 'users:signup' %}" method="post">
{% csrf_token %}
{{ form }}
<br />
<br />
<input type="submit" value="Submit">
</form>
{% endif %}
<br />
首先你根本不是DRY!你知道吗
你应该使用Django的ModelForm,你只是让你的生活更轻松!你知道吗
因此,您应该保持模型不变(也可以删除
validators
参数),并将forms.py
更改为:最后,在你的
views.py
中,节省一些时间,写下:你可以在表单中输入这种验证代码。Read the docs for more info。你知道吗
例如:
相关问题 更多 >
编程相关推荐