Аутентификация пользователя Android-Django-1

Я пытаюсь сослаться на пользователя как на внешний ключ в моей модели django AddRec (имея Android во внешнем интерфейсе) на стороне django. У меня есть этот код,

это модель Джанго,

class AddRec(models.Model):
     user=models.ForeignKey(User)
     about=models.CharField(User)
     created = models.DateTimeField(auto_now_add=True)

class AddRecForm(ModelForm):
class Meta: 
    model=AddRec

@login_required 
def add_record(request):
    if request.method=='POST':
        if not request.user.is_authenticated(): # if user is not logged in
            response_data=[{"success": "0"}]
            return HttpResponse(simplejson.dumps(response_data),mimetype='application/json')
    current_user=request.User
    description=request.POST['about']
    new_rec = AddRec(user=current_user,about=description)
    new_rec.save()
    response_data=[{"success": "1"}]
    return HttpResponse(simplejson.dumps(response_data), mimetype='application/json')
    else:
        response_data=[{"success": "0"}]
        return HttpResponse(simplejson.dumps(response_data),mimetype='application/json')

Когда я выполняю приведенный выше код с Android в качестве бэкэнда, он выдает ошибку «фатальное исключение». Главное, что я не могу получить доступ к запросу, который пользователь отправил с Android в django.

Со стороны Android я просто отправляю данные с помощью

nameValuePairs.add(new BasicNameValuePair("about", "123"));  

и с помощью httppost я отправляю данные. Нужно ли отправлять имя пользователя со стороны Android, даже если пользователь вошел в систему?


person user1163236    schedule 24.03.2012    source источник
comment
возможный дубликат аутентификации пользователя Android-Django   -  person Caleb    schedule 26.03.2012


Ответы (1)


Используемая вами аутентификация сохраняет ключ сеанса в файле cookie на стороне клиента (Android). Вы используете HttpClient? если это так, вы должны использовать файлы cookie.

Кроме того, API должны быть без гражданства. Вы не должны держать пользователя в системе, используя файлы cookie для API. http://en.wikipedia.org/wiki/Representational_state_transfer Существует несколько популярных схем аутентификации API. что адрес это.

Вы отправляете токен csrf с запросом? Если нет, вы можете явно отключить защиту csrf для своего представления с помощью декоратора. https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#django.views.decorators.csrf.csrf_exempt (не рекомендуется)

При публикации вопроса, пожалуйста, публикуйте журналы ошибок, трассировку, в основном все, что вы видите, когда что-то идет не так.

person dm03514    schedule 24.03.2012