私はDjangoを使用してバス予約Webサイトを開発しています。私は別のDjangoアプリに2つのモデルファイルを持っています。モデルクラスの1つはBusで、もう1つは座席です。バスクラスには整数フィールドがあります。私は、バスがデータベースに作成されると、自動的にループが実行され、バスクラスの容量と同じ座席が作成されます。おそらく、あなたは私のモデルファイルを見て、より明瞭なビューを得るでしょう。ジャンゴモードの自動生成シート
のsrc \帳の\ models.py
from django.db import models
from django.contrib.auth.models import User
from web.models import Bus, Route
class Booking(models.Model):
class Meta:
verbose_name_plural = "Booking"
user = models.ForeignKey(User)
#session = models.ForeignKey(sessions.Sessions)
name = models.CharField(max_length=50)
gender = models.CharField(max_length=10, choices=(('Mr', 'mr'), ('Mrs', 'mrs'), ('Ms', 'ms'),))
age = models.IntegerField()
email = models.EmailField()
phone = models.IntegerField()
bus = models.ForeignKey(Bus, default='')
def __str__(self):
return self.name
class Seat(models.Model):
class Meta:
verbose_name_plural = "Seat"
for seats in range(1,int(float(Bus.capacity)+1.0)):
id = models.AutoField(primary_key=True)
bus = models.ForeignKey(Bus)
def __str__(self):
return str(self.id)
class Ticket(models.Model):
class Meta:
verbose_name_plural = "Ticket"
seat = models.ForeignKey(Seat)
bus = models.ForeignKey(Bus)
route = models.ForeignKey(Route, default='')
def __str__(self):
return str(self.id)
のsrc \ウェブ\のmodels.py \
from django.db import models
from django.core.exceptions import ValidationError
class Route(models.Model):
class Meta:
verbose_name_plural = "Routes"
BUSFROM = (
('Delhi', 'Delhi'),
('Jaipur', 'Jaipur'),
('Ajmer', 'Ajmer'),
)
BUSTO = (
('Ajmer', 'Ajmer'),
('Chandigarh', 'Chandigarh'),
('Delhi', 'Delhi'),
)
route_id = models.AutoField(primary_key=True,)
location_from = models.CharField(max_length=255, choices=BUSFROM)
location_to = models.CharField(max_length=255,choices=BUSTO)
route_name = models.CharField(max_length=500, default='', editable=False)
def __str__(self):
if self.location_from == self.location_to:
raise ValidationError('To and From Can\'t be the same')
self.route_name = '{0}-{1}'.format(str(self.location_from), str(self.location_to))
return self.route_name
class Bus(models.Model):
BUSTYPE = (
('Volvo', 'Volvo'),
('Ordinary', 'Ordinary'),
)
class Meta:
verbose_name_plural = "Bus"
type_of_bus = models.CharField(max_length=255, choices=BUSTYPE)
bus_registration = models.CharField(max_length=255, default='')
capacity = models.IntegerField(default=0)
bus_number = models.IntegerField()
route = models.ForeignKey(Route,)
def __str__(self):
return '{0}, {1}, {2}'.format(str(self.bus_number), self.type_of_bus, self.route)
あなたが本の中で見ることができるように\ \ models.py、forループは遅延オブジェクトの明白な理由で失敗します。
また、バスの周波数を追加するためのweb \ models.pyに頻度クラスを作成したいとします。日時フィールドを作成すると、各バスオブジェクトを何度も繰り返す必要がありますが、これはあまり便利ではありません。だから、どんな提案も大歓迎です。あなたが見る必要がある他のファイルがある場合は教えてください。ありがとう。
それは働いた。ありがとう、トン!あなたがしたことを説明していただけますか?また、バスモデルに周波数を追加したい場合は、どのように行うか提案はありますか? –