What I can do is first register the employee via a register form, then once he logs in ask him/her for the profile picture. *Can I do that this way? *
If I do it this way, I don't have to change my model in any way. Dana nedjelja, 13. rujna 2020. u 18:11:18 UTC+2 korisnik coolguy napisao je: > not sure about the purpose of showing that example in Django documentation > while its comments are clear that "object will not have been saved to the > database yet, so if it uses the default AutoField, *it might not yet have > a value for its primary key field*." > > so that's the reason for having None with file path. > > In this approach what i can see is to save the employee first without file > and then edit and select the file. > > I would not use this approach and rather keep it simple as followed: > > photo = models.ImageField(upload_to='employee/%Y/%m/%d/', blank=True) > > On Sunday, September 13, 2020 at 5:41:18 AM UTC-4 mislav....@gmail.com > wrote: > >> Hey coolguy, >> >> thanks for responding. After I changed that line as you suggested that >> error is solved, *but when I add the user through the admin interface, I >> get None as the ID* (the folder that gets created in the */media/users* >> is titled *None*). I'm not sure if this is expected behavior. >> >> I haven't added the registration or the login yet, so maybe the ID gets a >> value when someone is actually registering. >> >> Let me know. >> >> Best, >> Mislav >> >> Dana subota, 12. rujna 2020. u 21:57:21 UTC+2 korisnik coolguy napisao je: >> >>> I wanted to see your model to understand but i realized after my last >>> post that you are using "instance.user.id" while your employee instance >>> does not have user field. (had to go somewhere urgently) >>> return >>> "employees/media/users/{0}/profile_picture.{1}".format(instance.user.id, >>> extension) >>> >>> change it as follow and remove user from it. >>> return "employees/media/users/{0}/profile_picture.{1}".format( >>> instance.id <http://instance.user.id/>, extension) >>> >>> It should work... >>> >>> On Saturday, September 12, 2020 at 3:17:28 PM UTC-4 mislav....@gmail.com >>> wrote: >>> >>>> coolguy here is the complete Employee model: >>>> >>>> class Employee(models.Model): #TODO: Double-check this >>>> username = models.CharField(max_length=50, unique=True) >>>> email = models.EmailField() >>>> password = models.CharField(max_length=50) >>>> first_name = models.CharField(max_length=150) >>>> last_name = models.CharField(max_length=100) >>>> website = models.URLField(max_length=200, blank=True) >>>> >>>> profile_picture = models.ImageField(upload_to=get_upload_path, >>>> blank=True, null=True) >>>> >>>> def __str__(self): >>>> return str(self.first_name) + str(self.last_name) >>>> >>>> *Why do I need the foreign key to User in the first place?* I don't >>>> recall seing the foreign key to User in any one of the tutorials. >>>> Dana subota, 12. rujna 2020. u 20:20:11 UTC+2 korisnik coolguy napisao >>>> je: >>>> >>>>> Please share the complete employee model. It seems you are missing >>>>> User foreign key in it. >>>>> >>>>> On Saturday, September 12, 2020 at 2:03:20 PM UTC-4 >>>>> mislav....@gmail.com wrote: >>>>> >>>>>> Hey guys, >>>>>> >>>>>> I have the following code in models.py file in one of my apps: >>>>>> >>>>>> def get_upload_path(instance, filename): >>>>>> extension = filename.split('.')[-1] >>>>>> return "employees/media/users/{0}/profile_picture.{1}".format( >>>>>> instance.user.id, extension) >>>>>> >>>>>> class Employee(models.Model): >>>>>> # some attributes here >>>>>> profile_picture = models.ImageField(upload_to=get_upload_path, >>>>>> blank=True, null=True) >>>>>> >>>>>> I am getting the following error when I try to add an Employee via >>>>>> the admin interface: >>>>>> >>>>>> AttributeError at /admin/employees/employee/add/ >>>>>> >>>>>> 'Employee' object has no attribute 'user' >>>>>> >>>>>> *I don't know where this error is stemming from.* I took the >>>>>> get_upload_path function from the official Django FIleField >>>>>> documentation >>>>>> <https://docs.djangoproject.com/en/3.1/ref/models/fields/#filefield>. >>>>>> >>>>>> Any ideas as to what is going on here? >>>>>> >>>>>> Best, >>>>>> Mislav >>>>>> >>>>> -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/428c96ea-d71b-4174-a8e7-ff5ad45f5ec3n%40googlegroups.com.