On 1/03/2018 3:20 PM, Matemática A3K wrote:


On Wed, Feb 28, 2018 at 12:46 AM, Mike Dewhirst <[email protected] <mailto:[email protected]>> wrote:

    On 28/02/2018 1:58 PM, Alexander Joseph wrote:

        Sorry, I think my question was confusing. What I want to do is
        allow the user to either select a user from a drop down list
        of users from the ForeignKey in the Users model, or if there
        is not a user suitable to select in the drop down, they can
        manually type in a name themselves.


    In the same field that would require a hack of the first water. 
    Way above my pay grade. For me, anything which equates an existing
    user object with a string typed in is likely to end in misery.

    Otherwise a separate CharField for the typed in name and null=True
    and blank=True in the ForeignKey ought to work.

    Mike


Indeed, what you can also do - besides the nullable FK, is process that in the Form where if the FK is null and the the charfield is not None, then create a User (maybe non active) with that name and assign it to the FK.

It will depend on the use-case requirements but I think that could get slightly messy. You need to ensure you are not creating duplicate people. For example you would likely need case-insensitive names.





        Thanks for your reply



        On Tuesday, February 27, 2018 at 7:45:51 PM UTC-7, Mike
        Dewhirst wrote:

            On 28/02/2018 1:26 AM, Alexander Joseph wrote:
            > Is there a way to make a form field or model field
        either a foreign
            > key reference or allow the user to fill in something
        themselves?
            I'm
            > making a fixed assets app and each fixed asset has an
        owner field,
            > which I would like to assign to an app user if possible,
        and if not
            > possible be able to fill in a name myself.

            Yes. Make the ForeignKey in the model null=True and
        blank=True so
            it can
            exist all alone. Then you can limit_choices_to whatever
        whatever
            suits
            your requirements ...

        
https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to
        
<https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to>
           
        
<https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to
        
<https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to>>


            hth
            Mike


            >
            > Thanks
            > --
            > 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 [email protected]
        <mailto:[email protected]> <javascript:>
            > <mailto:[email protected]
        <mailto:django-users%[email protected]>
        <javascript:>>.
            > To post to this group, send email to
        [email protected] <mailto:[email protected]>
            <javascript:>
            > <mailto:[email protected]
        <mailto:[email protected]> <javascript:>>.
            > Visit this group at
        https://groups.google.com/group/django-users
        <https://groups.google.com/group/django-users>
            <https://groups.google.com/group/django-users
        <https://groups.google.com/group/django-users>>.
            > To view this discussion on the web visit
            >
        
https://groups.google.com/d/msgid/django-users/98c44317-0993-4d41-9d25-33f8a9821dce%40googlegroups.com
        
<https://groups.google.com/d/msgid/django-users/98c44317-0993-4d41-9d25-33f8a9821dce%40googlegroups.com>
           
        
<https://groups.google.com/d/msgid/django-users/98c44317-0993-4d41-9d25-33f8a9821dce%40googlegroups.com
        
<https://groups.google.com/d/msgid/django-users/98c44317-0993-4d41-9d25-33f8a9821dce%40googlegroups.com>>

            >
           
        
<https://groups.google.com/d/msgid/django-users/98c44317-0993-4d41-9d25-33f8a9821dce%40googlegroups.com?utm_medium=email&utm_source=footer
        
<https://groups.google.com/d/msgid/django-users/98c44317-0993-4d41-9d25-33f8a9821dce%40googlegroups.com?utm_medium=email&utm_source=footer>
           
        
<https://groups.google.com/d/msgid/django-users/98c44317-0993-4d41-9d25-33f8a9821dce%40googlegroups.com?utm_medium=email&utm_source=footer
        
<https://groups.google.com/d/msgid/django-users/98c44317-0993-4d41-9d25-33f8a9821dce%40googlegroups.com?utm_medium=email&utm_source=footer>>>.

            > For more options, visit
        https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>
            <https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>>.

-- 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 [email protected]
        <mailto:django-users%[email protected]>
        <mailto:[email protected]
        <mailto:django-users%[email protected]>>.
        To post to this group, send email to
        [email protected]
        <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>.
        Visit this group at
        https://groups.google.com/group/django-users
        <https://groups.google.com/group/django-users>.
        To view this discussion on the web visit
        
https://groups.google.com/d/msgid/django-users/dd78c8cf-1892-4740-b3cb-1e384b9bd788%40googlegroups.com
        
<https://groups.google.com/d/msgid/django-users/dd78c8cf-1892-4740-b3cb-1e384b9bd788%40googlegroups.com>
        
<https://groups.google.com/d/msgid/django-users/dd78c8cf-1892-4740-b3cb-1e384b9bd788%40googlegroups.com?utm_medium=email&utm_source=footer
        
<https://groups.google.com/d/msgid/django-users/dd78c8cf-1892-4740-b3cb-1e384b9bd788%40googlegroups.com?utm_medium=email&utm_source=footer>>.
        For more options, visit https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>.


-- 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 [email protected]
    <mailto:django-users%[email protected]>.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>.
    Visit this group at https://groups.google.com/group/django-users
    <https://groups.google.com/group/django-users>.
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/django-users/4facfe44-e50e-e7d4-e41a-1c82775a8f7f%40dewhirst.com.au
    
<https://groups.google.com/d/msgid/django-users/4facfe44-e50e-e7d4-e41a-1c82775a8f7f%40dewhirst.com.au>.


    For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.


--
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 [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2BFDnhJbavWjzyOnBLaTF1-VZTsHXjsjcfpWBEmaMyUsre--hA%40mail.gmail.com <https://groups.google.com/d/msgid/django-users/CA%2BFDnhJbavWjzyOnBLaTF1-VZTsHXjsjcfpWBEmaMyUsre--hA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/53a58428-bbf0-929e-0811-d95faa54e5fa%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.

Reply via email to