Я создаю приложение Django, в котором мне нужно представлять пол (мужчина/женщина) для всех пользователей. Один пользователь может выбрать, что они интересуются мужчинами, женщинами или и тем, и другим. Эти данные затем будут использоваться для перекрестных ссылок с другими пользователями, чтобы найти сходство. ManytoManyField для пола будет явно работать, но поскольку пол - довольно статическое поле, которое будет иметь только два варианта, есть ли лучший способ реализовать это? Есть ли какое-то поле с возможностью множественного выбора, которое не требует, чтобы база данных подслушивала поле m2m?Альтернативы ManytoManyField для статических/жестко закодированных данных?
ответ
Определенно уклоняются от M2M - это будет дорого обойтись и просто трудно запросить в течение долгого времени с тоннами двойного подчеркивания нотации. Для статического материала вы специально хотите choices
.
Одним из наиболее полезных кодирования практики, которые я узнал за эти годы идея от Джеймс Беннет блога как он использует выбор: http://www.b-list.org/weblog/2007/nov/02/handle-choices-right-way/
В принципе, пусть позволяет это сделать:
class MyObject(models.Model):
MALE = 0
FEMALE = 1
ROBOT = 2
MY_CHOICES = [
(MALE, 'Male'),
(FEMALE, 'Female'),
(ROBOT, 'Robot'),
]
gender = models.IntegerField(choices=MY_CHOICES)
MyObject.objects.filter(gender=MyObject.ROBOT)
вы можете хранить строку или Int, и ограничить возможные значения с помощью choices
В качестве альтернативы вы можете использовать два булевых поля: интерес к мужчинам и женщинам. У вас может быть небольшая настройка формы, чтобы он был более удобным для пользователя, но я думаю, что это имеет больше смысла с точки зрения БД. –
- 1. Назначить manytomanyfield другому manytomanyfield
- 2. cURL: [P] roblem (2) в закодированных закодированных данных
- 3. PHP cURL получение закодированных данных
- 4. MimeType для закодированных файлов
- 5. Альтернативы window.onbeforeunload для отправки данных?
- 6. Альтернативы Python для больших данных
- 7. Файл поиска для закодированных тегов
- 8. Джанго: «отдельные» альтернативы не-PostgreSQL баз данных
- 9. Альтернативы базы данных?
- 10. Альтернативы данных весны
- 11. Фильтр Queryset для django ManyToManyField?
- 12. verbose_name для ManyToManyField не отображается
- 13. Обработка закодированных данных B64 в Python
- 14. Ошибка CoreBluetooth при записи данных, закодированных NSKeyedArchiver?
- 15. Вставка json закодированных данных в mysql
- 16. Сохранение данных, закодированных с помощью NSCoder
- 17. Передача жестко закодированных данных в массивы
- 18. Потребление закодированных данных с использованием Apache HTTPComponents
- 19. Стандартная библиотека Python для POST multipart/form-data закодированных данных
- 20. Задание жестко закодированных входных данных для D3 Многострочная линейная диаграмма
- 21. Альтернативы типизированным наборам данных?
- 22. Фильтрация ManyToManyField
- 23. manyToManyField вопрос
- 24. Qt: Альтернативы QTable для больших наборов данных
- 25. уровни функционируют альтернативы для таблицы данных R
- 26. Альтернативы для хранения данных с помощью Javascript
- 27. Альтернативы XMLSerializer для очень больших данных
- 28. Альтернативы UNION ALL для получения агрегированных данных
- 29. WPF: альтернативы сетке для отображения данных?
- 30. MySQL-прокси-альтернативы для базы данных Sharding
, как говорят ответы, 'выборы' - это то, что вы хотите. но на самом деле 'выборы' работают только вместо' ForeignKey'. что, если человек и мужчина и женщина? – Jayen