Python 防止数据库中数据的重复
下面是查看中的代码Python 防止数据库中数据的重复,python,django,Python,Django,下面是查看中的代码 def index(request): data = Model.objects.create(user=request.user, timestamp=timezone.now()) 每当请求视图时,我都会保存请求它的用户&用户请求页面的时间戳 但是,它使用更新的时间戳在数据库中重复相同的数据。在请求视图时,如何通过更新同一实例来防止重复 请帮帮我 你可以用这种方式处理。如果数据不存在,则创建else更新 def index(request): data
def index(request):
data = Model.objects.create(user=request.user, timestamp=timezone.now())
每当请求视图时,我都会保存请求它的用户&用户请求页面的时间戳
但是,它使用更新的时间戳在数据库中重复相同的数据。在请求视图时,如何通过更新同一实例来防止重复
请帮帮我 你可以用这种方式处理。如果数据不存在,则创建else更新
def index(request):
data = Model.objects.update_or_create(user=request.user, timestamp=timezone.now())
或者:
所以你只想在记录存在的情况下更新时间戳,如果记录不存在,你想创建一个新的吗?@Kyle Yes Sir。根据Astik Anand爵士的回答,我使用了Try&Except和If&Else,因为If&Else并没有为新用户创建一个新的。这条路对吗?谢谢你,先生。使用上面的“data”变量Try&Except可以很好地工作,因为它引发了一个错误,并且没有为新用户创建实例:)使用Try&Except也是一个好方法吗?实际上我只使用了
Try
和Except
,这是更好的方法。您可以查看答案的编辑历史记录。但后来我想从上面过去。但是最好是使用尝试和除了之外,因为我总是喜欢这样。
def index(request):
data = Model.objects.get(user=request.user)
if not data:
data = Model.objects.create(user=request.user, timestamp=timezone.now())
else:
data = Model.objects.update(user=request.user, timestamp=timezone.now())