Доступ к таблице в sqlite с помощью django и создание запроса

Я хочу получить доступ к данным из таблицы1, из моей базы данных и сделать запрос на основе другой таблицы, используя django. Например: получить доступ к данным из таблицы 1 (пользователь, дата, час:минуты, город, чек) и таблицы 2 (пользователь, дата: час:минуты, широта, долгота) и если час:минуты одинаковы в обеих таблицах, мне нужно обновить поле check со значением True.

Я пытался получить доступ к данным из таблицы table1 с помощью objects.filter on user, date, но я думаю, что это не очень хороший метод, потому что он не дает мне значения из строки. Я прочитал документацию с https://docs.djangoproject.com/en/4.0/topics/db/queries/#copying-model-instances, но у меня не получается сделать это правильно и закончить. И для второй части я думал сделать что-то с if, но все еще не уверен. В начале мне нужно получить доступ к данным из таблицы1.

Я не могу понять, откуда в строке user = User.objects.get(id = user_id) берется user_id. Идет ли он от reader или можно использовать user = request.user?

Если мои предположения верны, то я думаю, что вы можете сначала получить таблицы User, UserAcoount и Localization перед циклом for:

@login_required(login_url='login') 
def uploadCoord_file_view(request):
    
    # Get the user
    user = request.user

    # Access the Localization table of the specific user
    localization = Localization.objects.get(user=request.user)

    # Access the UserAccount (you did not provide that model, so I am guessing
    user_account = UserAccount.objects.get(user=request.user)

   ...

Тогда вы можете выполнить сопоставление и обновление следующим образом:

###### Here I need to access the table Localization and create the query

# Filter all Coordinates that have the same date and user as the Localization table
coordinates = Coordinates.objects.filter(date=localization.date, user=user_account)

# Update the values of all the matches
coordinates.update(latitude='North', longitude='West')

Лучше всего поместить все запросы get в оператор try/except, иначе вы получите ошибку, если get вернет ни одного совпадения:

try:
    # Access the Localization table of the specific user
    localization = Localization.objects.get(user=request.user)
except Localization.DoesNotExist
    # Code to handle what should happen if no match exists
Вернуться на верх