У меня есть код, который, когда пользователь входит в систему, выбирает рецепты, которые применяются к нему, на основе ингредиентов (предметов), которые он ранее идентифицировал как идентифицированные как имущество.
Этот код получает идентификаторы предметову пользователя уже есть:
if request.user.is_authenticated():
user_items = [possession.item for possession in request.user.possession_set.all()]
user_items_ids = [item.id for item in user_items]
uids = set(user_items_ids)
Следующий код, который уже существовал, - это место, где я сталкиваюсь с проблемами ...
recipes = [(recipe, len(set([item.id for item in recipe.items.all()]) & uids), recipe.votes) for recipe in recipes]
Я создал еще одну часть сайта, которая позволяет людямкоторые еще не подписались, чтобы просто выбрать несколько ингредиентов.Я делаю это с помощью jQuery на внешнем интерфейсе, а затем отправляю результаты на сервер:
var ingredient_set = [];
$('.temp_ingredient').each(function(index){
ingredient_set[index] = $(this).attr('id').substr(4);
});
$.get('/recipes/discover', { 'ingredients': ingredient_set },
function(){
alert("Success");
});
Проблема заключается в том, что я получаю их на стороне Django с этим кодом:
uids = request.GET['ingredients']
Я получаю следующую ошибку:
unsupported operand type(s) for &: 'set' and 'unicode'
По сути, я знаю, что они не в том же формате, но я не знаю, как заставить их быть совместимыми.