Запрос данных в django, сопоставленных с идентификаторами в списке
Я пытаюсь обновить некоторые данные в своих моделях django, но застрял на том, как получить эти атрибуты. Смотрите, у меня есть список с именем ids = ['112', '111', '114', '113', '115']. И у меня есть модель Member
class Member(models.Model ):
user = models.ForeignKey(Users,verbose_name='User Id', on_delete=models.CASCADE)
com = models.ForeignKey(Committee, on_delete=models.CASCADE,verbose_name='Committee Name')
mem_status = models.CharField( max_length=20,choices=MEMBER_STATUS, verbose_name='Member Status')
mem_note = models.TextField(null=True, blank=True)
mem_order = models.IntegerField(default=0)
Итак, каждый id в ids имеет объект, доступный в Member Model, Что я хочу, так это обновить mem_order каждого объекта следующим образом. Предположим, 111 в ids находится во втором индексе. Я хочу установить mem id на 111, чтобы установить 2 в mem_order. Я получаю все нужные члены из таблицы Member Теперь я не знаю, как перебрать эти идентификаторы и сопоставить их с идентификатором каждого члена из модели Member.
Возможно, это не очень эффективно, но я думаю, что это сработает.
for index, id in enumerate(ids, start=1):
member = Member.objects.get(pk=id)
member.mem_order = index
member.save()
Используя функцию python enumerate, вы можете выполнить итерацию по индексу и значениям списка ids, затем получить член со значением id в этом списке. Затем установить mem_order в индекс и, наконец, сохранить его. Функция enumerate имеет start=1, поэтому первый элемент списка, '112', будет иметь индекс 1 и значение '112'.