В Django операции объединения должны иметь одинаковые столбцы, поэтому с values_list
вы можете использовать эти конкретные столбцы только так:
qsa = ModelA.objects.all().values('text_a', 'title')
qsb = ModelB.objects.all().values('text_a', 'title')
qsa.union(qsb)
Но я не знаю (о чем я знаю)подражать NULL
в союзе в Джанго.Таким образом, вы можете продолжить работу двумя способами.
Первый: добавьте дополнительное поле в вашу модель с именем other_column
.Вы можете оставить значения пустыми, например:
other_column = models.CharField(max_length=255, null=True, default=None)
и использовать операции объединения наборов запросов Django, как описано в здесь .
Last One, подход является немного питоническим,Попробуйте вот так:
a = ModelA.objects.values_list('text_a', 'title', 'other_column')
b = ModelB.objects.values_list('text_a', 'title')
union_list = list()
for i in range(0, len(a)):
if b[i] not in a[i]:
union_list.append(b[i])
union_list.append(a[i])
Надеюсь, это поможет !!