I believe that the “First Name” + “Last Name” fields you’re seeing exist in the Django admin and in the underlying data model, because they are provided by the framework that Open edX is built on, but Open edX itself doesn’t use those fields. So it’s safe/best to just leave them blank.
My recommendation is to change your business logic so that you only work with full names and don’t need the First Name / Last Name split. Alternatively, you can create your own API to get/set the first_name and last_name fields that exist in the database, but you’ll have to understand that those fields will be ignored by the platform and won’t be used by any of the standard APIs. You can use this extension point to add additional fields to the registration form, including “First name” and “Last name”, if required.
@rhasan, there are many more additional fields that can be added to the registration form but are not enabled by default (code). To enable additional fields, you can configure them by specifying appropriate values for REGISTRATION_EXTRA_FIELDS either in the settings (via lms.yml) or in SiteConfiguration.
Though the Django User model has support for fields like ‘first name’, ‘last name’ etc., you will see that the platform stores these as key-value pairs in the UserProfile.meta field instead.
Some of these fields can be enabled and made visible in the Account Settings page by configuring the extended profile fields (code).