2012-03-24 7 views
0

Я пытаюсь передать пользователю в качестве внешнего ключа в моей Джанго модели AddRec (Имея андроид на веб-интерфейсе) на стороне Джанго У меня есть этот код,Android-Джанго аутентификации 1 пользователь

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

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 в качестве backend, он дает мне ошибку «фатальное исключение». Главное, чтобы я не смог получить запрос, отправленный пользователем с Android в django.

С Android стороны я просто отправить данные с

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

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

+0

Возможный дубликат [аутентификации пользователя Android-Django] (http://stackoverflow.com/questions/9851972/android-django-user-authentication) – Caleb

ответ

0

Аутентификация, которую вы используете, хранит ключ сеанса в 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 (не рекомендуется)

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

Смежные вопросы