Внешний ключ поля массива Django - PullRequest
0 голосов
/ 05 февраля 2019

Я расширил свой пользовательский режим профилем, в котором есть необязательное поле, представляющее собой массив.Каждый элемент в массиве может быть уникальным значением из поля в другой таблице.В этой конкретной таблице у меня есть поле, которое является полем массива, в котором я хочу хранить адреса электронной почты пользователей, которые имеют эту опцию в своем поле массива.Есть ли способ, которым я могу сделать это, где это поле содержит адреса электронной почты пользователей, которые имеют это конкретное значение поля в своем поле массива?И если этот элемент удаляется из поля массива профиля пользователя, он также удаляется из массива этой таблицы?

class LocationCodes(models.Model):
    location = models.CharField(db_column='location', primary_key=True, max_length=10)# Abbreviated location code
    customergroup = ArrayField(models.CharField(db_column='customergroup', max_length=6))
    emails = ArrayField(models.CharField(db_column='emails', max_length=60)) #Array field that I want to link to User Model emails
    location_name = models.CharField(db_column='location_name', max_length=60)
    state = models.CharField(db_column='state', max_length=20)


class UserProfileExtension(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    locations = MultiSelectField(choices=location_code_choices) #This field contains an array of the locations that are from the location field in the LocationCodes table.

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

1 Ответ

0 голосов
/ 05 февраля 2019

насколько я понимаю ваш вопрос, (потому что вы не поделились ни одним кодом или моделью), вы можете попробовать это:

from django.contrib.auth.models import User
email_address = models.ForeignKey(User, on_delete=models.CASCADE)
...