Не пойму в чём проблема, укажите на мои ошибки пожалуйста, если это возможно.
models:
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
following = models.ManyToManyField(User, related_name='following',
symmetrical=False, blank=True)
templates:
{% with total_followers=view_user.profile.following.count %}
<a href="#" data-id="{{ id }}" data-action="{% if request.user not in view_user.profile.following.all %}un{% endif %}follow" class="btn btn-default follow button">
{% if request.user not in view_user.profile.following.all %}
Follow
{% else %}
Unfollow
{% endif %}</a>
{% endwith %}
самое страшное и пока не очень понятное местами скорее всего тут ошибка:
$('a.').click(function(e){
e.preventDefault();
$.post('{% url "accounts:user_follow" %}',
{id: $(this).data('id'),
action: $(this).data('action')},
function(data){
if (data['status'] == 'ok')
{
var previous_action = $('a.follow').data('action');
$('a.follow').data('action', previous_action == 'follow' ? 'unfollow' : 'follow');
$('a.follow').text(previous_action == 'follow' ? 'Unfollow' : 'Follow');
var previous_followers = parseInt($('span.count .total').text());
$('span.count .total').text(previous_action == 'follow' ? previous_followers + 1 : previous_followers - 1);
}
});
});
вот он должен сработать после вышеуказанного js, но может и тут ошибся, так как не работает views:
@ajax_required
@login_required
@require_POST
def user_follow(request):
user_id = request.POST.get('id')
action = request.POST.get('action')
if user_id and action:
try:
view_user = User.objects.get(id=user_id)
user = User.objects.get(id=request.user)
if action == 'follow':
user.profile.following.add(view_user)
else:
user.profile.following.remove(view_user)
return JsonResponse({'status':'ok'})
except User.DoesNotExist:
return JsonResponse({'status':'ko'})
return JsonResponse({'status':'ko'})
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости