我打算在相同的模板上更新、创建和删除,如下所示。
我目前在我的模型上有以下内容
class Customer(models.Model):
TITLE = (
('Mr', 'Mr'),
('Mrs', 'Mrs'),
('Miss', 'Miss'),
('Ms', 'Ms'),
('Dr', 'Dr'),
('Sir', 'Sir'),
('Madam', 'Madam'),
)
STATUS = (
('Active', 'Active'),
('On hold', 'On hold'),
)
GENDER = (
('Male', 'Male'),
('Female', 'Female'),
)
ROLE = (
('Customer', 'Customer'),
('Admin', 'Admin'),
)
title = models.CharField(max_length=200, null=True, choices=TITLE)
first_name = models.CharField(max_length=200, null=True)
middle_name = models.CharField(max_length=200, blank=True,default='')
last_name = models.CharField(max_length=200, null=True)
phone = models.CharField(max_length=200, null=True)
country = CountryField()
birth_year = models.CharField(max_length=4, null=True)
gender = models.CharField(max_length=200, null=True, choices=GENDER)
email = models.CharField(max_length=200, null=True)
password = models.CharField(max_length=200, null=True)
status = models.CharField(max_length=200, null=True,choices=STATUS)
date_created = models.DateTimeField(auto_now=True, null=True)
profile_pic = models.ImageField(null=True, blank=True, default='images/default.png')
role = models.CharField(max_length=200, null=True, choices=ROLE)我的表单如下
class CustomerProfileForm(forms.ModelForm):
class Meta:
model = Customer
fields = [ 'title','first_name','middle_name','last_name','phone','country','birth_year','gender']目前,我显示了更新每个客户的视图,如下所示。
@login_required(login_url='login')
def CustomerProfile(request, pk):
customer = Customer.objects.get(id=pk)
formie = CustomerProfileForm(instance=customer)
if request.method == 'POST':
formie = CustomerProfileForm(request.POST, instance=customer)
if formie.is_valid():
formie.save()
return redirect('/')
context = {'formie':formie}
return render(request, 'accounts/customer_profile.html', context)在另一个模板中,我有一个客户列表,每个客户都有一个指向每个客户更新的编辑按钮,如上所示。
但有单独的按钮称为“新”,我需要定向到相同的模板作为更新客户,但创建客户。
这有可能发生吗?
发布于 2020-05-11 00:49:25
您可以在模板中的表单中为编辑和新建按钮使用不同的名称,如下所示:
<form action="/" method="post">
<input type="submit" name="new_customer" value="New" />
<input type="submit" name="edit_customer" value="Edit" />
</form>if request.method == 'POST':
if 'edit_customer' in request.POST:
formie = CustomerProfileForm(request.POST, instance=customer)
if formie.is_valid():
formie.save()
return redirect('/')
elif 'new_customer' in request.POST:
# create new customer here
# your other codes ...https://stackoverflow.com/questions/61715290
复制相似问题