Android-Django потребителско удостоверяване-1

Опитвам се да насоча потребителя като външен ключ в моя django модел AddRec (Имам android в интерфейса) от страна на django Имам този код,

това е модел 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)


Удостоверяването, което използвате, съхранява ключа на сесията в бисквитка от страна на клиента (android). Използвате ли HttpClient? ако е така, трябва да използвате бисквитки.

Освен това, API трябва да са без състояние. Не трябва да държите потребител влязъл с помощта на бисквитки за 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