Аналогично другому ответу, но вы можете использовать ArrayAdapter для заполнения на основе класса Enum. Я бы порекомендовал переопределить toString в классе Enum, чтобы значения, заполненные в счетчике, были более удобными для пользователя. В задании:
Spinner mySpinner = (Spinner) findViewById(R.id.mySpinnerId);
mySpinner.setAdapter(new ArrayAdapter<MyEnum>(this, android.R.layout.simple_spinner_item, MyEnum.values()));
Ваш начальный класс:
public enum MyEnum{
ENUM1("Enum 1"),
ENUM2("Enum 2");
private String friendlyName;
private MyEnum(String friendlyName){
this.friendlyName = friendlyName;
}
@Override public String toString(){
return friendlyName;
}
}
Я не думаю, что есть санкционированный способ сделать это в Django.
Идентификатор пользователя хранится в объекте сеанса, но он закодирован. К сожалению, это означает, что вам придется перебирать все сеансы, декодировать и сравнивать ...
Два шага:
Сначала удалите объекты сеанса для вашего целевого пользователя. Если они войдут в систему с нескольких компьютеров, у них будет несколько объектов сеанса.
from django.contrib.sessions.models import Session
from django.contrib.auth.models import User
# grab the user in question
user = User.objects.get(username='johndoe')
[s.delete() for s in Session.objects.all() if s.get_decoded().get('_auth_user_id') == user.id]
Затем, если вам нужно, заблокируйте их ....
user.is_active = False
user.save()
Возможно, немного промежуточного программного обеспечения, которое ссылается на список пользователей, которые были вынуждены выйти из системы. В следующий раз, когда пользователь попытается что-либо сделать, выйдите из системы, перенаправит и т. Д.
Если, конечно, им не нужно немедленно выйти из системы. Но опять же, они не заметят этого, пока не попытаются в следующий раз сделать запрос, поэтому приведенное выше решение может просто работать.