models.py
class Req(models.Model):
name = models.CharField(max_length=200)
# fileup is a csv of 6 digit barcodes
fileup = models.FileField(upload_to='uploads/')
class ReqBarcodes(models.Model):
barcode = models.CharField(max_length=6)
req = models.ForeignKey(Req, on_delete=models.CASCADE)
当用户上传他们的csv时,我想为该csv文件中包含的所有条形码创建ReqBarcodes实例,类似于on_delete CASCADE,但是像on_create CASCADE。我的猜测是我需要在Req模型类中定义一个自定义的 init 方法。如果是这样,我可以在其中执行csv验证吗?如果验证失败,是否会创建类实例?我不希望创建类,我将重定向用户再试一次。
此时我也在使用通用的创建视图。我可以修改此视图,还是需要编写完全自定义的视图?
views.py
class RequestCreate(CreateView):
model = Request
fields = ['name', 'upload']
success_url = reverse_lazy('requests:index')