0
検索の結果、問題がForeignKeyに関連していることがわかりました。 IDを返すことを期待していますが、テール番号を使用します。私は多くの方法を試しましたが、どのように動作するのかわかりません。基数10のint()のリテラルが無効です: 'N21706' - Django
私は別のアプリのモデルにForeignKeyをやっています。 2つのアプリはdispatch(app2)とadd_acft(app1)と呼ばれます。私が間違いを抱えているという見解は、発送アプリケーションにあります。私が理解するのを助けるためにあなたができることがあれば、事前に感謝します。
add_cftのmodels.py
from django.db import models
import datetime
class AddAcft(models.Model):
YEAR_CHOICES = []
for r in range(1940,(datetime.datetime.now().year+1)):
YEAR_CHOICES.append((r,r))
make = models.CharField(max_length=10,blank=False,null=False)
make_model = models.CharField(max_length=10,blank=False,null=False)
tail = models.CharField(max_length=7,blank=False,null=False)
year = models.IntegerField(('year'),choices=YEAR_CHOICES, default=datetime.datetime.now().year)
serial_number = models.IntegerField(blank=False,null=False)
updated = models.DateTimeField(auto_now_add=False,auto_now=True)
def __str__(self):
return self.tail
ディスパッチmodels.py
from django.db import models
import datetime
from django.core.urlresolvers import reverse
from add_acft import models as aircraft_models
shced_type_choices = (('rental','rental'), ('instruction','instruction'))
class Reservation(models.Model):
res_number = models.AutoField(primary_key=True)
date = models.DateField(default=datetime.date.today())
status = models.CharField(max_length=10,default="Created")
reservation_type = models.CharField(max_length=11,choices=shced_type_choices, default="rental")
tail = models.ForeignKey(aircraft_models.AddAcft)
renter = models.CharField(max_length=30,blank=False,null=False)
created = models.DateTimeField(auto_now_add=True,auto_now=False)
updated = models.DateTimeField(auto_now_add=False,auto_now=True)
def __str__(self):
return self.renter
def get_absolute_url(self):
return reverse("reservations:detail", kwargs={"res_number": self.res_number})
ディスパッチviews.py
from django.contrib import messages
from django import forms
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from add_acft.models import AddAcft
from .forms import ReservationForm, CloseReservationForm
from .models import Reservation
def reservations_list(request):
queryset = Reservation.objects.all()
context = {
"object_list": queryset,
"title": "List"
}
return render(request, "dispatch/list.html", context)
def reservations_detail(request, res_number=None):
instance = get_object_or_404(Reservation, res_number=res_number)
context = {
"title": instance.renter,
"instance": instance,
}
return render(request, "dispatch/details.html", context)
def reservations_create(request):
ReservationForm.base_fields['tail'] = forms.ModelChoiceField(queryset=AddAcft.objects.all())
form = ReservationForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
messages.success(request, "Reservation Created")
return HttpResponseRedirect(instance.get_absolute_url())
context = {
"form": form,
}
return render(request, "dispatch/create.html", context)
は、完全なスタックトレースを投稿してください – e4c5
私はあなたがReservationForm 'にその割り当てをやっているのかを理解していません。 base_fields' - 一般的にあなたはその属性を決して変更するべきではありませんが、完全なエラーとトレースバックを見ることはできません。 –
こんにちはダニエル。私はちょうど尾の数字をリストし、ユーザーがそれを入力するのではなく、既に保存されているものでModelChoiceFieldを作成するためにそのものを使用しています。私が例えば:tail = models.CharField(max_length = 10)(ディスパッチモデルの内部)を使って実行すると、すべてが動作します。私の問題は、add_acfモデルでそれを外部キーで置き換えてテールを作成しようとすることです。私は今外出しています、私は今日後でエラーをコピーします。 – aitor11