[英]How to create a model in Django based on the instance of another model, but filtered
[英]Create instance of a model automatically based on instance of another model
我想在创建汽车模型实例时创建 4 个轮胎实例和 1 个引擎实例这是我的模型代码
class Car(models.Model):
company=models.CharField(max_length=25)
car_model = models.CharField(max_length = 25)
year = models.IntegerField()
class Engine(models.Model):
car=models.OneToOneField(Car)
engine_type=models.CharField(max_length = 15)
no_cylinders=models.IntegerField()
state=models.CharField(max_length = 15)
class Tyre(models.Model):
car=models.ForeignKey(Car)
tyre_material=models.CharField(max_length = 15)
position=models.CharField(max_length = 10) #ex front right back left
state=models.CharField(max_length = 15)
和汽车的形式
class car_form(forms.ModelForm):
class Meta:
model = Car
fields = (
'comapany',
'car_model',
'year'
)
def save(self, commit=True):
obj=car_form.save()
obj.company = self.cleaned_data['comapany']
obj.car_model = self.cleaned_data['car_model']
obj.year = self.cleaned_data['year']
if commit:
obj.save()
return obj
这是我的看法
def car_create(request):
if request.method =='POST':
form = car_form(request.POST)
if form.is_valid():
form.save()
return redirect("/")
else :
return render(request, 'agency/car_form.html',
{'form': form})
else:
form = car_form()
args = {'form': form}
return render(request, 'agency/car_form.html', args)
我应该在我的代码中更改什么?
您可以根据父实例创建实例,例如:
...
new_car = form.save()
engine = Engine.objects.create(car=new_car)
for i in range(4):
tyre = Tyre.objects.create(car=new_car)
...
最好的办法是使用信号
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.