V. Snow
V. Snow

Reputation: 133

Django ORM: Object is not iterable (Error)

Can anyone explain why this is iterable:

User.objects.all()

this is valid and gives me a value (The current user's alias. session is storing the user id):

User.objects.get(id = request.session['currentuser']).alias)

But this is giving me the error saying it is 'not iterable?':

Poke.objects.get(user = User.objects.get(id = request.session['currentuser']).alias)

(This code is supposed to get a list of Poke entries where the user column matches the current user's alias.)

Here is the Poke model. It does not use ForeignKeys, as I was having trouble setting two of them without errors.

class Poke(models.Model):
    id = models.IntegerField(primary_key=True)
    user = models.CharField(max_length=100)
    poker = models.CharField(max_length=100)
    pokes = models.IntegerField()
    class Meta:
        app_label = "poke_app"

Upvotes: 1

Views: 2557

Answers (2)

ger.s.brett
ger.s.brett

Reputation: 3308

Get will retrieve a single object and therefore the result will not be iterable. See documentation.

Upvotes: 1

ricristian
ricristian

Reputation: 536

Do you see an integer value when you print(request.session['currentuser'])? If you will see a string then you shoud give an integer value EX: userobj = User.objects.get(id=uid)

Oh sory

User.objects.get(id = request.session['currentuser']).alias)

You open ( and closed it after ['currentuser']) but why you close ) again after .alias ?

Upvotes: 0

Related Questions