Как я могу проверить, содержит ли название модели моего общества идентификатор города или нет?

Я хочу проверить, содержит ли название моего общества идентификатор города и населенного пункта или нет.

  • Первый Я хочу итерировать каждое название общества и получить id города по id населенного пункта и проверить, добавлено ли название города в конце названия общества или нет, если да, то обновить все названия обществ, удалив название города.

    .
  • Секунда Затем снова я хочу итерировать каждое название общества и получить идентификатор населенного пункта и проверить, добавлено ли название населенного пункта в конце названия общества или нет, если да, то обновить все названия обществ, удалив название населенного пункта.

    .

society.py

class Society(models.Model):
    name = models.CharField(max_length=255, blank=True, null=True)
    created_at = models.DateTimeField(db_column='createdAt', auto_now_add=True)  # Field name made lowercase.
    updated_at = models.DateTimeField(db_column='updatedAt', auto_now=True)  # Field name made lowercase.
    locality = models.ForeignKey('Locality', models.DO_NOTHING, db_column='localityId', blank=True, null=True, related_name='society_set')  # Field name made lowercase.
    dot_com_database_id = models.IntegerField(db_column='dotComDatabaseId', blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'societies'

locality.py

class Locality(models.Model):
    name = models.CharField(max_length=255, blank=True, null=True)
    created_at = models.DateTimeField(db_column='createdAt', auto_now_add=True)  # Field name made lowercase.
    updated_at = models.DateTimeField(db_column='updatedAt', auto_now=True)  # Field name made lowercase.
    city = models.ForeignKey('City', models.DO_NOTHING, db_column='cityId', blank=True, null=True, related_name='locality_set')  # Field name made lowercase.
    connect_database_id = models.IntegerField(db_column='connectDatabaseId', blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'localities'

city.py

class City(models.Model):
    name = models.CharField(max_length=255, blank=True, null=True)
    created_at = models.DateTimeField(db_column='createdAt', auto_now_add=True)  # Field name made lowercase.
    updated_at = models.DateTimeField(db_column='updatedAt', auto_now=True)  # Field name made lowercase.
    currency = models.CharField(max_length=255, blank=True, null=True)
    connect_database_id = models.IntegerField(db_column='connectDatabaseId', blank=True, null=True)  # Field name made lowercase.
    dot_com_database_name = models.CharField(db_column='dotComDatabaseName', max_length=255, blank=True, null=True)  # Field name made lowercase.
    location_master_request_url = models.CharField(db_column='locationMasterRequestUrl', max_length=255, blank=True, null=True)  # Field name made lowercase.
    country = models.ForeignKey('Country', models.DO_NOTHING, db_column='countryId', blank=True, null=True, related_name='city_set')  # Field name made lowercase.
    pms_operation_status = models.CharField(db_column='pmsOperationStatus', max_length=255, blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'cities'

Помогите пожалуйста!!! Я искал решение много дней, но так и не нашел.
Заранее спасибо!

Это должно помочь вам:

for s in societies:
    locality = s.locality.name
    city = s.locality.city.name
    # search for locality name in society name
    res = s.name.find(locality)
    If res != -1:
        len_of_name = len(locality)
        new_name = s.name[:res]+s.name[res+len_of_name:]
        s.name = new_name
    # search for city name in society name
    res = s.name.find(city)
    If res != -1:
        len_of_name = len(city)
        new_name = s.name[:res]+s.name[res+len_of_name:]
        s.name = new_name
    s.save()
Вернуться на верх