user1667633
user1667633

Reputation: 4619

Python:Query set has no attribute 'start_time'

My Meeting model is Here

class Meeting(models.Model):
    name = models.CharField(max_length=200)
    meetingID = models.CharField(max_length = 50) 
    venue = models.ForeignKey('MeetingRoom',related_name ='meetingroom',null = True,blank = True)   # whether One Time or Recurring
    status =models.IntegerField(null=True, blank=True)
    recurring_time = models.CharField(max_length=50)              # (Recurring date schedule information)
    attendee_passwd = models.CharField(max_length=100)
    moderator_passwd = models.CharField(max_length = 100)
    date_created = models.DateTimeField(auto_now=True)               # it should be auto fill 

    meeting_datetime = models.DateTimeField(default=datetime.datetime.now,blank=True, null=True)
    timezone = models.CharField(max_length = 50)
    reminder = models.BooleanField()
    start_time = models.CharField(max_length=100)
    end_time = models.CharField(max_length=100)
    meeting_duration = models.CharField(max_length=100)

    duration = models.CharField(max_length=20)
    created_by = models.ForeignKey('User',related_name ='meetingroom_created')
    sms_no = models.IntegerField()  #participant will call on this number   Unique for all users and participant 
    conferenceID = models.IntegerField(blank=True, null=True)
    meeting_logout_url = models.CharField(max_length=100)
    max_participants = models.IntegerField(blank=True, null=True)
    participants = models.ForeignKey('Participant',related_name = 'parts_of_meetingroom',null = True)

    def disable_from_meeting(self):
        try:
            get_participant = Participant.objects.filter(meeting_id =self.id)
            for get_pp in get_participant:
                get_pp.status = 0
                get_pp.save()
        except:
            LOG_INFO('Organization %s has no PARTICIPANT IN %Ssuser ', self.id)
            pass  
    class Meta:
        app_label = 'testsite'

now in my views when i am trying to store the start_time in dictionary like

            get_all_user_of_org = User.objects.filter(org_name =get_org)

            for user_id in get_all_user_of_org:
                mee_data = {} 
                get_meetings = Meeting.objects.filter(created_by = user_id.id)
                print dir(get_meetings)
                mee_data['start_time'] = get_meetings.start_time 
              #  mee_data['end_time'] = get_meetings
                getall.append(mee_data) 

then why i am getting the

 AttributeError: 'QuerySet' object has no attribute 'start_time'

Here no reason to show this error because start_time is the attribute of my Meeting table

please help me what might I do wrong ?

Upvotes: 0

Views: 1011

Answers (2)

Konstant
Konstant

Reputation: 2199

Well you are using

get_meetings = Meeting.objects.filter(created_by = user_id.id)

This return type of filter is a queryset object which can have one or multiple objects. To get the start_time of all the meetings of a user, you should use something like

get_meeting_start_times = Meeting.objects.filter(created_by = user_id.id).values_list('start_time', flat=True)

Upvotes: 0

Claudiu
Claudiu

Reputation: 229341

Meeting.objects.filter is not returning a Meeting - it is returning a QuerySet of meetings. You can iterate through the QuerySet to get the meeting time of each meeting:

for user_id in get_all_user_of_org:
    mee_data = {} 
    get_meetings = Meeting.objects.filter(created_by = user_id.id)
    print dir(get_meetings)
    for meeting in get_meetings:
        do_something_with(meeting.start_time)

You have to realize you're dealing with more than one meeting here, and they might have different start times. You'll know best what you want to do in that case. Probably something like this?

for user_id in get_all_user_of_org:
    get_meetings = Meeting.objects.filter(created_by = user_id.id)
    for meeting in get_meetings:
        mee_data = {} 
        mee_data['start_time'] = meeting.start_time
        getall.append(mee_data)

Upvotes: 1

Related Questions