class Database(models.Model):
...
questions = models.ManyToManyField(Question)
pathToAudioFiles = models.CharField(max_length=255, unique=True, help_text="Please type in path to folder with Audio Files, e.g. media/database1/*.mp3", verbose_name="Path to Audio Files")
def audioData(self):
return AudioData.objects.filter(database=self.pk)
def __unicode__(self):
return self.name
def save(self, *args, **kwargs):
super(Database, self).save(*args, **kwargs)
filelist = glob.glob(self.pathToAudioFiles)
for file in filelist:
print "adding file %s" % file
audioData = AudioData.objects.get_or_create(path=file, filename=file, database=self)
# then update pairs
for a in self.audioData():
print 'working on %s' % a
print self.questions.all()
for q in self.questions.all():
print "creating pairs with %s" % q
pair = AudioQuestionPair.objects.get_or_create(audioData=a, question=q, database=self)
for choice in q.choices:
print "adding answer %s" % choice
answer = Answers.objects.get_or_create(body=choice, audioQuestionPair=pair)
>>> from play.models import *
>>> db = Database.objects.create(name="database1", pathToAudioFiles="media/database1/*.mp3")
adding file media/database1\devel_001.mp3
adding file media/database1\devel_010.mp3
working on media/database1\devel_001.mp3
[]
working on media/database1\devel_010.mp3
[]
[12/Jan/2015 21:57:50] "GET /admin/play/database/1/ HTTP/1.1" 200 7021
[12/Jan/2015 21:57:50] "GET /admin/jsi18n/ HTTP/1.1" 200 2372
adding file media/database1\devel_001.mp3
adding file media/database1\devel_010.mp3
working on media/database1\devel_001.mp3
[]
working on media/database1\devel_010.mp3
[]
[12/Jan/2015 21:57:56] "POST /admin/play/database/1/ HTTP/1.1" 302 0