Как получить данные из двух таблиц ManyToManyField Django
В данном случае я получаю все CountryCode, а нужно только те которые привязаны к Article_200 должно получиться что то вроде:
FN0760 4682202ARM
FN0760 4682202AZ
RN51002DSET 4682202ARM
RN51002DSET 4682202AZ
FN0792 4682202UA
FN0792 4682202UZ
Но вместо этого я получаю весь список CountryCode, который никак не связан с Article_200
Models:
class Country_202(models.Model):
CountryCode = models.CharField(max_length=255, verbose_name="CountryCode", blank=True, null=True)
CountryName = models.CharField(max_length=255, verbose_name="CountryName", blank=True, null=True)
class Article_200(models.Model):
Country = models.ManyToManyField(Country_202, blank=True)
GenArtNo = models.IntegerField(verbose_name="GenArtNo", blank=True, null=True)
BrandNoId = models.ForeignKey(Supliers_200, on_delete=models.CASCADE, related_name='BrandNoArticle_200', blank=True, null=True)
Views:
def generate_202(brand_no: str):
objects = Article_200.objects.filter(BrandNoId__BrandNo=brand_no).prefetch_related('Country')
country = Country_202.objects.all()
with open(BASE_DIR / 'converted_db' / str(brand_no) / f'202.{brand_no}', 'w', encoding='utf-8') as file:
for obj in objects:
for con in country:
data = [
obj.ArtNo.ljust(22), # ArtNo
str(brand_no).ljust(4), # BrandNo
'202'.ljust(3), # TableNo
con.CountryCode.ljust(3), # CountryCode
''.ljust(1), # Exclude
''.ljust(1), # DeleteFlag
]
file.write(''.join(data) + '\n')