1
我有一个模型保存从Excel文件导入的数据。 我想防止有重复的条目,它会检查已经存在的数据,看看它们是否匹配。防止添加重复的数据从Excel格式导入到db
我的模型
from django.db import models
class UserData(models.Model):
GENDER_CHOICES = (
('Male', 'Male'),
('Female', 'Female'),
)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
age = models.IntegerField()
gender = models.CharField(default='Male', choices=GENDER_CHOICES, max_length=6)
address = models.CharField(max_length=200)
class Meta:
verbose_name_plural = 'User Data'
def __str__(self):
return self.fullname()
views.py
class UploadFileForm(forms.Form):
file = forms.FileField()
def import_data(request):
if request.method == "POST":
form = UploadFileForm(request.POST,
request.FILES)
if form.is_valid():
request.FILES['file'].save_to_database(
name_columns_by_row=2,
model=UserData,
mapdict=['first_name', 'last_name', 'age', 'gender', 'address'])
return HttpResponse("OK")
else:
return HttpResponseBadRequest()
else:
form = UploadFileForm()
return render_to_response('excel/upload_form.html',
{'form': form},
context_instance=RequestContext(request))
我尝试使用unique_together
,并试图重写形式cleaned_data
,但仍然无法阻止被添加到数据库副本。
什么是最好的方法来实现这一目标?感谢
你在哪里得到一个KeyError? –
目前没有。但是,当我尝试覆盖clean_data时,我得到了KeyError,说明“first_name”在它明确的时候不存在。 –
什么是最好的方法来解决这个问题? –