Reputation: 4619
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
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
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