Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 防止数据库中数据的重复_Python_Django - Fatal编程技术网

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())