양식을 입력하면 텍스트 상자에 값을 입력하는 대신 양식을 사용하는 데 문제가 있습니다. ToolID, 도구의 수량 및 체크섬을 요구하는 도구 체크 아웃 트랜잭션을 만들려고합니다. 사용자가 PartyID를 선택하는 대신 사용자 이름과 성의 목록을 볼 수있게하고 싶습니다. 성 및 이름은 필수 항목이지만 해당 입력란을 포함하는 양식을 만들 때 입력란에 입력란이 표시됩니다. 나는 사용자가 드롭 다운 옵션에서 원하는 사용자를 선택하게 할 것이라고 믿는다. 어떤 도움을 주시면 감사하겠습니다.외래 키가있는 장고 양식
모델 :
class Party(models.Model):
PartyID=models.AutoField(primary_key=True, db_column='PartyID')
FirstName=models.CharField(max_length=100, null=False)
LastName=models.CharField(max_length=100, null=False)
PhoneNumber=models.CharField(max_length=25, null=False)
Organization=models.CharField(max_length=100, null=True)
Deleted=models.BooleanField(default=0)
objects=models.Manager()
class Meta:
managed=True
db_table='Party'
def __unicode__(self):
return str(self.PartyID)
def get_absolute_url(self):
return reverse("ToolSearch:borrowerUpdate", kwargs={"pk": self.PartyID})
class ToolTransaction(models.Model):
CheckOutID=models.AutoField(primary_key=True)
ToolID=models.ForeignKey(Tool, db_column='ToolID', on_delete=models.CASCADE,)
PartyID=models.ForeignKey(Party, db_column='PartyID', on_delete=models.CASCADE,)
Quantity=models.IntegerField(null=False)
CheckOutDate=models.DateField(null=False, default=datetime.datetime.now)
CheckInDate=models.DateField(null=True)
Deleted=models.BooleanField(default=0)
objects=ActiveTransactionManager()
#objects=models.Manager()
class Meta:
managed=True
db_table='ToolTransaction'
ordering=('CheckOutID',)
def __unicode__(self):
return str(self.CheckOutID)
def get_absolute_url(self):
return reverse("ToolSearch:toolCheckin", kwargs={"pk": self.CheckOutID})
class Tool(models.Model):
ToolID=models.CharField(max_length=100, primary_key = True, unique=True, db_column='ToolID')
Quantity=models.IntegerField(null=False)
Location=models.CharField(max_length=100, null=False)
CategoryID=models.IntegerField(null=True)
Deleted=models.BooleanField(default=0)
objects=models.Manager()
class Meta:
managed=True
db_table='Tool'
def __unicode__(self):
return self.ToolID
def get_absolute_url(self):
return reverse("ToolSearch:toolSearchResults", kwargs={"pk": self.ToolID})
양식 :
class BorrowerSelectForm(forms.ModelForm):
class Meta:
model = Party
fields = [
"FirstName",
"LastName",
"PhoneNumber"
]
class ToolCheckoutCreateForm(forms.ModelForm):
class Meta:
model = ToolTransaction
fields = [
"ToolID",
"Quantity",
"PartyID",
]
보기 : 나는 ToolCheckOutCreateForm도에서 개체를 참조 할 수 있습니다 경우
def tool_checkout(request):
queryset = Party.objects.all()
form = ToolCheckoutCreateForm(request.POST or None)
form2 = BorrowerSelectForm(request.POST or None)
if form.is_valid():
instance=form.save(commit=False)
instance.save()
messages.success(request, "Tool Checked Out succesfully")
context={
"form": form,
"form2": form2
}
return render(request, "toolcheckout.html", context)
나는 또한 하나의 양식을 사용하여에 괜찮을 것 한 번에 두 가지 형식을 표시하는 것과 대조적 인 당사자 모델. 이 문제를 해결하는 가장 좋은 방법은 확실하지 않습니다.
감사합니다.