【发布时间】:2021-04-01 04:01:08
【问题描述】:
我的 django 应用程序“客户端”和“安装”中有两个模型。下面是我的models.py:
models.py
rom django.db import models
from django.utils import timezone
from django.urls import reverse
# Create your models here.
class Client(models.Model):
name = models.CharField(max_length = 100)
dob = models.SlugField(max_length = 100)
CNIC = models.SlugField(max_length = 100)
property_type = models.CharField(max_length = 100)
down_payment = models.IntegerField()
date_posted = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('client_details',kwargs={ 'pk' : self.pk})
class Installment(models.Model):
client = models.ForeignKey(Client, null=True, on_delete=models.CASCADE)
installment_month = models.CharField(max_length = 100)
installment_amount = models.IntegerField()
installment_date = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.installment_month
def get_absolute_url(self):
return reverse('installment_confirmation')
还有我的观点.py
view.py
# To create new client
class ClientCreateView(CreateView):
model = Client
fields = ['name', 'dob', 'CNIC', 'property_type', 'down_payment']
# To add new installment
class AddInstallmentView(CreateView):
model = Installment
#template_name = "property_details/addinstallment_form.html"
fields = ['installment_month', 'installment_amount']
我必须添加新分期的网址如下:
urlpatterns = [
path('', ClientListView.as_view(), name='client_list'),
path('new/', ClientCreateView.as_view(), name='add_client'),
path('<int:pk>/', ClientDetailView.as_view(), name='client_details'),
path('<int:pk>/Add-Installment', AddInstallmentView.as_view(), name='add_installment'),
path('confirmation/', views.installment_added, name='installment_confirmation'),
]
您可以看到添加新分期的 URL 是唯一的。例如,
/<local_server_addr>/<client.id>/Add-Installment (because of <int:pk> above)
我可以创建一个新客户端,也可以添加分期付款。
但是如何将分期付款连接到特定客户端?
如何将此client.id 用作当前分期付款的所有者?
看起来,当一个客户端被创建时,它被分配了一些来自 django 的 ID。现在,如何使用该 ID 将其链接到我要添加的分期付款?
【问题讨论】:
-
如果它是针对当前用户的,则您在请求中有 id。否则,您也可以在 url 中传递 client_id
-
您能否详细说明您的观点。我没有完全理解。
标签: python django database django-models